Можно ли изменить тип совпадения для управляемого объекта объекта NSPersistentDocument?

Мне нужно, чтобы тип одновременного обращения управляющего объекта объекта NSPersistentDocument был NSMainQueueConcurrencyType, потому что мне нужны контексты в других потоках.

2 ответа

Решение

Да, ты был прав. Переопределив 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;
}

Документация дляNSPersistentDocument говорит это о managedObjectContext имущество:

Если вы хотите настроить создание стека постоянства, переопределите это свойство в своем пользовательском подклассе и используйте свою реализацию для создания соответствующих объектов.

Это кажется довольно ясным. Переопределите это свойство и используйте любой тип параллелизма. Ты это пробовал? Разве это не сработало?