Замените основной NSManagedObjectContext на MOC из фонового потока вместо слияния - PullRequest
1 голос
/ 19 июня 2011

При использовании фонового потока для обновления основных данных, есть ли способ заменить основной NSManagedObjectContext обновленным контекстом из фонового потока вместо вызова mergeChangesFromContextDidSaveNotification?

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

Ответы [ 3 ]

0 голосов
/ 20 июня 2011

Вы, вероятно, не хотите этого делать. Управляемые объекты связаны с MOC; вы не можете просто изменить «основной» MOC и ожидать, что все в вашем приложении заметит; Вы должны будете сделать так, чтобы все ваши объекты, которые ссылаются на «главные» МО, указывали на МО из нового MOC.

-mergeChangesFromContextDidSaveNotification: (в основном) у меня отлично работает.

0 голосов
/ 27 июня 2011

Ответ здесь состоял в том, чтобы переключиться обратно в основной контекст, прежде чем фоновый контекст сохранит

[self executeSelectorOnMainThread: @selector (deletemainmoc) с объектом: nil waitUntilDone: ДА];

и удалите все объекты. затем, когда он переключается обратно в фоновый поток, он сохраняет данные, а затем вы можете объединиться в чистый контекст.

0 голосов
/ 19 июня 2011

В зависимости от ваших потребностей, вы можете просто сохранить контекст в фоновом потоке, а затем избавиться от контекста в основном потоке и создать новый в основном потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...