【发布时间】:2011-12-29 09:39:21
【问题描述】:
我有一个使用 Core Data 的 iPhone/iPad 应用程序。
在我的数据库中,我只有一张表,尽管它非常大(大约 40 列)。 当我构建数据库时,我创建并插入了大约 13,000 个新实体,然后我调用了“saveContext”。
for (NSArray *singleDiamond in allDiamonds)
{
@try
{
if (//Some validation)
{
Diamond *diamond = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([Diamond class])
inManagedObjectContext:self.managedObjectContext];
//Do setup for diamond...
}
}
@catch (NSException *exception) {NSLog(@"%@",[exception message]);}
}
NSLog(@"Start Saving Context...");
[self saveContext];
NSLog(@"End Saving Context...");
我的问题是只有 'saveContext' 方法需要 23 秒 才能执行。这是不可接受的。
我做错了什么吗? 如何提高这里的性能?
【问题讨论】:
-
请给我一些想法或建议,通过批量插入在核心数据中插入每 100 个对象以获得快速性能,因为在我的 iPad 设备中,我有超过 6000 个联系人并以最佳性能插入核心数据,所以请帮我解决这个问题。
-
与 Swift 批量插入示例类似的问题 stackoverflow.com/questions/32034100/…
标签: iphone ios sqlite core-data nsmanagedobjectcontext