У меня довольно сложная модель данных примерно с 10 объектами. Некоторые нужно хранить на диске, а другие просто должны быть доступны в памяти во время работы приложения. Можно ли добиться этого, используя два постоянных хранилища для одного и того же контекста управляемого объекта, или мне следует соответствующим образом разделить свои модели данных?
Два постоянных хранилища для одного контекста управляемого объекта — возможно?
Ответы (2)
Да, ваш NSManagedObjectContext использует NSPersistentStoreCoordinator, чтобы определить, какое хранилище должна использовать конкретная модель. Установив координатор постоянного хранилища контекста управляемого объекта, вы можете определить пользовательское сопоставление, которое использует несколько постоянных хранилищ разных типов.
person
Jonah
schedule
23.03.2011
+1 Чтобы расширить, вы должны использовать конфигурации и поместить объекты, которые необходимо хранить на диске, в одну конфигурацию, а в памяти - в другую. Назначьте соответствующие конфигурации соответствующему хранилищу при создании хранилищ. Имейте в виду, что вы не можете использовать прямые отношения между хранилищами, а вместо этого должны полагаться на извлеченные отношения.
- person TechZen; 23.03.2011
Вы можете использовать конфигурации, как упоминалось в TechZen:
- Создание конфигураций в редакторе модели управляемых объектов (файл .xcdatamodel);
- В коде добавьте несколько постоянных хранилищ к координатору постоянных хранилищ, указав соответствующее имя конфигурации.
Подробнее см. мой другой ответ здесь.
person
MANIAK_dobrii
schedule
29.08.2012