0

Мне нужен тип совпадения управляемого объекта NSPersistentDocumentObjectContext как NSMainQueueConcurrencyType, потому что мне нужны контексты в других потоках.Можно ли изменить тип совпадения в управляемом объекте NSPersistentDocumentObjectContext?

+0

то тогда лучше сначала показать свой проверенный код. – vaibhav

ответ

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; 
} 
3

documentation for NSPersistentDocument говорит это о managedObjectContext собственности:

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

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