我需要NSPersistentDocument的managedObjectContext的并发类型为NSMainQueueConcurrencyType,因为我需要其他线程中的上下文。
答案 0 :(得分:4)
documentation for NSPersistentDocument
说明managedObjectContext
属性:
如果要自定义持久性堆栈的创建,请在自定义子类中重新实现此属性,并使用实现创建适当的对象。
这似乎很清楚。重写此属性并使用您想要的任何并发类型。你试过吗?它不起作用吗?
答案 1 :(得分:1)
是的,你是对的。覆盖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;
}