我需要nspersistentDocument的takaneDobjectContext的并发类型为nsmainqueueconcurrencyType,因为我需要其他线程中的上下文。
NSPersistentDocument
的文档对managedObjectContext
属性说明:
如果要自定义持久性堆栈的创建,请在自定义子类中重新完成此属性并使用实现来创建适当的对象。
这似乎很清楚。覆盖此属性,并使用您想要的任何并发类型。你尝试过吗?它行不通吗?
是的,你是对的。覆盖ManageObjectContext您可以修改并发类型。也许,我有一些错误。
- (NSManagedObjectContext *)managedObjectContext {
__strong static NSManagedObjectContext *myManagedObjectContext = nil;
if (myManagedObjectContext == nil) {
myManagedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
[myManagedObjectContext setPersistentStoreCoordinator:psc];
}
return myManagedObjectContext;
}