【发布时间】:2013-05-03 23:53:27
【问题描述】:
UIManagedDocument 的文档中简要提到了
为了支持异步数据写入,Core Data 实际上使用了一对嵌套的托管对象上下文。
特定于 UIManagedDocument 或 Core Data 是否总是这样做?
同一文件还指出
如果合适,您可以将数据从后台线程直接加载到 parent 上下文。
是不是意味着在下面的代码中
NSManagedObjectContext *moc = self.managedObjectContext;
[moc performBlock:^() {
Record *record = [NSEntityDescription
insertNewObjectForEntityForName:@"Record"
inManagedObjectContext:moc];
}];
我应该简单地将第一行替换为
NSManagedObjectContext *moc = self.managedObjectContext.parentContext;
要做到这一点?
我想我也对直接使用这个父上下文在哪里“合适”感到困惑。我的意思是,这听起来已经像是 performBlock 用于将任务卸载到后台队列。为什么我需要弄乱父上下文?
如果有人为我澄清这一切,我将不胜感激。
【问题讨论】:
标签: ios core-data uimanageddocument