我一直在阅读与此相关的几篇帖子,但我仍然不确定如何处理我的场景:我有一个“根”上下文(默认情况下在AppDelegate
中提供)我在哪里插入我使用的对象并在整个应用程序中显示(此上下文仅用于只读操作)。我的对象的数据来自我定期调用的几个Web服务,每当我需要调用它们并更新我的对象时,我在私有队列中创建一个新的上下文来请求和解析它们:
NSManagedObjectContext *privateContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
privateContext.persistentStoreCoordinator = appDelegate.persistentStoreCoordinator;
[privateContext performBlock: ^{
// Call services and parse results
// Insert objects in context
// Save context
});
}];
完成此操作后,我需要将更新传输到“root”上下文,以便在应用程序中继续显示。我不知道该怎么做,我一直在考虑一些选择:
最后一点听起来是最合适的,如果没有更好的那个......是吗?有人能给我一个类似场景的明确示例/教程/示例代码吗?我还没有完全理解Core Data中的并发性。
提前致谢