Изменение модели (CoreData) — как бороться с ошибкой?

Доброе время суток, недавно столкнулся с проблемой, у меня есть приложение, которое использует CoreData для хранения данных, собственно, суть проблемы такова: я создал модель, наполнил её сущностями и полями, приложение стабильно работает (так как и должно работать - уже в AppStore) - но когда я меняю какое-либо поле или добавляю новое в модели и запускаю приложение, оно вылетает, приходится его удалять и ставить заново, тогда всё ОК, подскажите, пожалуйста, каким образом можно этого избежать? Чтобы пользователи даже не ощущали этого (что произошли изменения в БД).

Наверняка же есть способы?
  • Вопрос задан
  • 2912 просмотров
Решения вопроса 1
Flanker_4
@Flanker_4
Вам нужно провести миграцию. существуе два вида:
1. простая (lightweight), в данном случае от Вас требуется сделать "три клика", сохранив старую модель хранилища. Все остальное за Вас сделает core date. Но есть небольшие ограничения на изменение модели, лишь простое добавление сущностей, переименовывание и т.п. гуглите по тэгам "lightweight core data migration". Ах да, старую модель нужно сохранять до изменений(это важно!). т.е. создали вы сущность Автомобиль , чего то надобавляли в него и остановились на законченном варианте. сохраняете модель и не трогаете ее, а все новые изменения ведете в новой модели . xcode помогает менеджить различные версии моделей.
2. все ручками, когда вы не можете использовать простую миграцию из-за существенного изменения модели

все это подробно расписано в офф. документации (ну или том же гугле)

https://developer.apple.com/library/ios/documentat...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы