Правильная настройка MagicalRecord для сохранения rootSavingContext в фоновом потоке
Я пробовал MagicalRecord и MagicalImport для моего текущего проекта (v2.1). Пока все хорошо, но иногда я вижу, что мой поток пользовательского интерфейса блокируется, когда я внедряю новую сущность. Вот как я вставляю новую сущность:
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
//import an entity here
}]
При сохранении сущностей я часто замечал это в своей консоли отладки:
Saving <NSManagedObjectContext (0x1c558da0): *** BACKGROUND SAVING (ROOT) ***> on *** MAIN THREAD ***
Я просмотрел код MagicalRecord на github и похоже, что они используют трехуровневую стратегию MOC, упомянутую здесь: http://www.cocoanetics.com/2012/07/multi-context-coredata/. В этом случае корневой контекст должен сохраняться в фоновом потоке, а не в основном потоке, как предполагает журнал. Я использую следующую строку, чтобы получить и запустить coredata:
[MagicalRecord setupCoreDataStackWithStoreNamed:COREDATA_STORENAME];
Я делаю что-то не так, как я настроил? Почему мой корневой контекст не сохраняется в фоновом потоке?
1 ответ
Это ошибка в MagicalRecord. Если вам нужно исправить это сразу, попробуйте переключиться на экспериментальную ветку, я думаю, что она была там рассмотрена.