Обновление приложения для использования базовых данных из предыдущего постоянного хранилища только с SQLite - PullRequest
1 голос
/ 29 декабря 2011

В настоящее время я обновляю старое приложение для iPhone, использующее флэш-карты, которое использует две базы данных SQLite (одно с вопросами только для чтения, которые могут обновляться только обновлениями приложений, удалением карточек, добавлением карточек, обновлениями карточек, а другое - гдепользователь добавил свои собственные карты), чтобы использовать Core Data вместо.Единственное свойство для объекта «Flashcard», которое различает карточку только для чтения и карточку, добавленную пользователем, - это свойство «isCustom».Вот шаги, которые, по моему мнению, необходимы для этого:

(первое обновление с 2-х баз данных SQLite до CoreData)

  1. Получить все записи пользовательских карточек из базы данных пользовательских карточек пользователя.
  2. Добавление новой объектной модели базовых данных с карточками только для чтения, а затем загрузка в нее добавленных пользователем пользовательских карточек.
  3. Удаление старых баз данных SQLite (настраиваемая база данных карточек и база данных только для чтения).

(Обновления в будущем, которые уже будут иметь модель Core Data)

  1. Получить все пользовательские карты из текущего постоянного хранилища Core Data.
  2. Перенесите все пользовательские карты в новое постоянное хранилище Core Data.

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

1 Ответ

1 голос
/ 30 декабря 2011

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

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

Обратите внимание, что если вы используете одну и ту же модель для постоянного хранилища базовых данных только для чтения или включаете данные только для чтения в одно центральное постоянное хранилищехранилище, вам также нужно будет переносить эти нестандартные данные в новую модель при каждом обновлении.Поставка отдельного хранилища базовых данных только для чтения вместе с вашим приложением позволит вам выполнить эту миграцию один раз в конце, а не заставлять каждого из ваших конечных пользователей выполнять эту миграцию в поле при обновлении модели.

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