Mar*_*ler 2 cocoa core-data objective-c
我正在尝试创建NSManagedObjectContext的新实例,以便我可以在主要线程之外的线程中执行获取请求.据我所知,每个线程都需要它自己的实例,尽管它们可以共享商店.
我的应用是基于核心数据文档的应用.
在这里读了一下我有这个代码:
NSManagedObjectContext *managedObjectContextForThread = nil;
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel];
if (coordinator != nil) {
managedObjectContextForThread = [[NSManagedObjectContext alloc] init];
[managedObjectContextForThread setPersistentStoreCoordinator:coordinator];
[managedObjectContextForThread setUndoManager:nil];
}
Run Code Online (Sandbox Code Playgroud)
它运行但是当我执行提取时我没有得到任何结果,我怀疑是因为NSPersistentStoreCoordinator未正确设置.
我该如何设置商店协调员与我的主商店合作?或者还有其他我在这里缺少的东西?
Apple的"通常推荐的方法"是在上下文中共享一个持久存储协调器.理想情况下,您已经拥有对应用程序主要托管对象上下文的引用,并使用该上下文的持久性存储协调器.
NSManagedObjectContext *managedObjectContextForThread = [[NSManagedObjectContext alloc] init];;
[managedObjectContextForThread setPersistentStoreCoordinator:myMainContext.persistentStoreCoordinator];
Run Code Online (Sandbox Code Playgroud)
请参阅Apple的核心数据编程指南中的 "与核心数据并发"