更新很簡單,創建一個新的。
要更新,你需要建立一個NSFetchRequest
的特定對象。這個類相當於SQL語言中的SELECT語句。
這裏一個簡單的例子:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Favorits" inManagedObjectContext:moc]];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
// error handling code
陣列results
包含所有包含在源碼文件中的管理對象。如果你想抓住一個特定的對象(或更多的對象),你需要使用該請求的謂詞。例如:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title == %@", @"Some Title"];
[request setPredicate:predicate];
在這種情況下results
包含其中標題等於Some Title
的對象。設置謂詞等於將WHERE子句放入SQL語句中。
如需進一步信息,我建議你閱讀的核心數據編程指南和NSFecthRequest
類引用。
希望它能幫助。
編輯(代碼段,可以用來更新)
// maybe some check before, to be sure results is not empty
Favorits* favoritsGrabbed = [results objectAtIndex:0];
favoritsGrabbed.title = @"My Title";
// save here the context
,或者如果你沒有使用NSManagedObject
子類。
// maybe some check before, to be sure results is not empty
NSManagedObject* favoritsGrabbed = [results objectAtIndex:0];
[favoritsGrabbed setValue:@"My title" forKey:@"title"];
// save here the context
在這兩種情況下,如果你做的背景下save
,數據將被更新。
@CroiOS我的例子很簡單,在考慮內存管理並不需要。 –
謝謝。你能不能更新你的文章,並添加示例代碼來更新這個對象,而我已經學會了。我在這裏:收藏* myObject = [array objectAtIndex:0]; .. 下一步是什麼? – CroiOS
@CroiOS我添加了一個編輯。正如我已經評論過的,代碼非常簡單,你需要做一些檢查。這只是爲了指導您在檢索後修改您的託管對象。附:檢查代碼是因爲我手寫的。希望能幫助到你。 –