核心数据 - 所有记录的特定列更新

时间:2014-11-03 11:40:41

标签: ios objective-c core-data

我开发了一个带有核心日期的iOS应用程序。我有下表。

 id  | title        | Value
===========================
  1  | Foo          | 100
  2  | Bar          | 200
  3  | FooFoo       | 300

现在我想将所有记录的值列更新为500。

我正在使用下面的代码,

NSArray *mutableFetchResult = [[[self.managedObjectContext     executeFetchRequest:fetchRequest error:&error] mutableCopy] autorelease];
 if (mutableFetchResult == nil) {
    NSLog(@"Fetch result error %@, %@", error, [error userInfo]);
}
for (NSManagedObject *ob2 in mutableFetchResult) 
{
    [newContact setValue:@“500” forKey:@"Value"]; 
     if (![context save:&error]) { 
            NSLog(@"Failed to save - error: %@", [error localizedDescription]); 
    }
}

它工作正常。但我不想使用for循环更新记录。在我关心的是我有大约60000条记录。所以它看起来有点奇怪。

非常感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:1)

在iOS 8中,您可以使用NSBatchUpdateRequest执行批量请求。我很害怕,您必须遍历每条记录才能更新iOS 7

在这个漂亮的教程中阅读批量更新:

Batch Update in Core Data