是否可以更改 NSPersistentDocument 的 managedObjectContext 的并发类型?

Can concurrence type be changed of NSPersistentDocument's managedObjectContext?

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

documentation for NSPersistentDocument 关于 managedObjectContext 属性 的说法:

If you want to customize the creation of the persistence stack, reimplement this property in your custom subclass and use your implementation to create the appropriate objects.

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

是的,你是对的。覆盖 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;
}