Эта модель, кажется, работает для меня, но я не видел окончательного доказательства того, что она полностью законна. В моем случае фоновые темы в основном читаются, но иногда пишут (после загрузки данных с веб-сайта).
что я читал об использовании Core Data в нескольких потоках, говорит об использовании несколькихNSManagedObjectContext
случаи совместного использования одногоNSPersistentStoreCoordinator
, Это понятно, и я заставил его работать в приложении, которое использует Core Data в основном потоке для поддержки пользовательского интерфейса и имеет операцию фоновой выборки, которая может занять некоторое время для запуска.
Проблема в том, что доступ к базовому постоянному хранилищу SQLite сериализуетсяNSPersistentStoreCoordinator
, так что все еще есть случаи, когда пользовательский интерфейс блокируется операцией фонового извлечения.
Операция фонового извлечения никогда не обновит данные, а только прочитает их. Могу ли я установить полностью параллельный стек Core Data (NSManagedObjectContext
, NSManagedPersistentStoreCoordinator
, а такжеNSManagedObjectModel
) в фоновом потоке, связанном с тем же постоянным хранилищем SQLite? Кажется, что это даст полный параллелизм между потоком пользовательского интерфейса и операцией фонового извлечения.