Базовые данные: отдельные постоянные хранилища с несколькими контекстами против отдельных постоянных хранилищ с одним контекстом - PullRequest
0 голосов
/ 14 марта 2012

Некоторое время назад я задал вопрос о миграции SQLite в Core Data, и мне был дан ответ о том, чтобы сохранить постоянные хранилища отдельно, исходя из моей необходимости иметь хранилище «Только для чтения» и «Пользовательское хранилище»:

Обновление приложения для использования базовых данных из предыдущего постоянного хранилища с двойным SQLite

Я начинаю разработку этого приложения, и в настоящее время я планирую создать 2 отдельных контекста, поскольку я предвижу, что объектная модель карточек только для чтения останется прежней в будущих выпусках, тогда как пользовательская модель, вероятно, будет менять. Таким образом, мне действительно нужно было бы создавать версии пользовательской объектной модели и продолжать поставлять приложение с тем же самым магазином только для чтения.

Это умный путь? Если да, то о каких препятствиях мне следует остерегаться? Если нет, то что будет лучшей альтернативой?

1 Ответ

2 голосов
/ 14 марта 2012

Пока сущности в двух моделях не конфликтуют друг с другом, вы можете использовать обе модели вместе в одном контексте.Вы можете использовать метод +modelByMergingModels: для создания одной модели из двух или более моделей во время выполнения.Используйте эту новую модель для инициализации постоянного координатора хранилища и добавьте этот PSC в свой контекст.

Я уверен, что вы можете заставить свой код нормально работать с отдельными контекстами управляемого объекта, но одна из приятных вещейЧто касается Core Data, то если вы все настроите правильно, он будет управлять деталями поиска ваших объектов для вас.Использование единого контекста как для данных, доступных только для чтения, так и для ваших пользовательских данных, кажется положительным шагом на пути к простоте кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...