MagicalRecord: сохранение фона

Для приложения iOS, использующего MagicalRecord для связи с базой данных sqlite, поддерживаемой основными данными, каким должен быть подход для сохранения больших данных json с помощью вызовов веб-служб?

Поскольку MagicalRecord (MR) имеет NSManagedObjectContext, называемый rootContext, с типом параллелизма NSPrivateQueueConcurrencyType, который связан с постоянным хранилищем в качестве верхнего контекста. Затем следует еще один NSManagedObjectContext, называемый defaultContext, с типом NSMainQueueConcurrencyType [по-видимому, используемый для работы с основными данными в главном потоке]. Этот "контекст по умолчанию" имеет родительский NSManagedObjectContext в качестве "корневого контекста".

Мой вопрос заключается в большой фоновой загрузке данных json [состоящей из нескольких основных сущностей данных], которые необходимо сохранить в sqlite. Должны ли мы создать один контекст с NSPrivateQueueConcurrencyType, родительским объектом которого является rootContext, или несколькими контекстами?

Какой подход следует использовать, любая идея?

1 ответ

Это зависит от того, что данные на самом деле - т.е. есть ли связь между данными или нет, что определяет, могут ли несколько секций данных быть загружены одновременно. Вам нужен только один контекст и один фоновый поток, но вы можете использовать больше, если данные позволяют, и это повышает производительность (которую вам нужно будет протестировать и профилировать). Наличие большого количества контекстов вряд ли поможет (или просто замедлит процесс).

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