2012-04-17 4 views
0

Мое приложение в настоящее время использует NSCoding для хранения постоянных данных, но я хотел бы сделать переход на Core Data, чтобы воспользоваться его интеграцией с iCloud. Проблема в том, что приложение в настоящее время работает в App Store, и я боюсь, что после внесения изменений данные о местных магазинах моих текущих пользователей будут потеряны.Преобразование приложения iOS из NSCoding в базовые данные

В теории, я должен быть в состоянии сделать следующее:

  1. Теста на существование данных NSCoding
  2. Преобразование данных в формат данных керна
  3. Использование Ядро данных для всех будущих «экономит»

... но я не нашел документацию о внесении преобразования.

Любые идеи? Или я совсем где-то?

Благодаря

+0

Умете ли вы эту работу? Я оказался в подобной ситуации. – icekomo

ответ

1

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

Оставьте «старые» классы вокруг и откройте «старый» магазин, если он есть. Затем просто пройдите через объекты в хранилище и создайте их эквиваленты CoreData. Сохраните CoreData, закройте его, а затем перезагрузите его как проверку, чтобы убедиться, что все идентично. Затем удалите старый файл хранилища.

Единственная нижняя сторона заключается в том, что вы должны хранить старый код (по крайней мере, достаточно, чтобы развернуть старые форматы объектов).