0

我需要 NSPersistentDocument 的 managedObjectContext 的并发类型为 NSMainQueueConcurrencyType 因为我需要其他线程中的上下文。

4

2 回答 2

4

文档说明NSPersistentDocument了该managedObjectContext属性:

如果要自定义持久性堆栈的创建,请在自定义子类中重新实现此属性并使用您的实现来创建适当的对象。

这似乎很清楚。覆盖此属性并使用您想要的任何并发类型。你试过了吗?它没有工作吗?

于 2016-12-23T18:29:47.450 回答
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;
}
于 2016-12-27T09:03:15.243 回答