Правильная настройка 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. Если вам нужно исправить это сразу, попробуйте переключиться на экспериментальную ветку, я думаю, что она была там рассмотрена.

Другие вопросы по тегам