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



我需要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;
}

相关内容

  • 没有找到相关文章

最新更新