У меня есть функциональное приложение, которое в значительной степени ориентировано на базу данных. Мой клиент в настоящее время использует это приложение, и у него много ранее сохраненных данных (примечание: оно локально, а не сохраняется в онлайн-базе данных). Проблема в том, что я знаю, когда я обновляю свою модель данных, мне придется удалить ее, а затем переустановить приложение, потому что в противном случае она потерпит крах из-за несоответствий в модели данных. Есть ли способ сохранить данные там, все еще обновляя мою модель данных?Сохранить основные данные?
ответ
Я знаю, что когда я обновляю свою модель данных, мне придется удалить, а затем переустановить приложение, потому что в противном случае он будет сбой из-за несоответствий в модели данных.
Неправда, если только вы просто не потрудитесь иметь дело с изменением. Core Data включает поддержку переноса данных из одной версии модели данных в более новую, чтобы существующие хранилища данных обновлялись для использования новой модели без удаления или других крайних шагов. В большинстве случаев это даже автоматическое - вам просто нужно сказать, чтобы он имел дело с изменением. В частности, следует использовать параметр options
при добавлении постоянного хранилища:
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,
NSInferMappingModelAutomaticallyOption:@YES};
if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
....
}
Это работает, если ваши изменения включают в себя только один или несколько из следующих действий:
- Добавление или удаление атрибута
- Изменение атрибута «Необязательный» флаг (при условии, что если вы делаете его не факультативным, вы предоставляете значение по умолчанию)
- Переименование объекта или его атрибута
- Добавление, удаление или переименование лица
- Добавление родительских или дочерних объектов, или движущиеся атрибуты к другой точке в иерархии
- Изменение отношения от к-одному к ко-многим
Если вы» переименовать все, вам нужно установить идентификатор переименования, чтобы Core Data знал, как переносить.
Если этого недостаточно, Core Data поддерживает неавтоматическую миграцию несколькими способами. Это подробно описано в документации Apple, которую я не буду пытаться воспроизвести здесь.
Именно это я и искал. Я не знал, что смогу мигрировать автоматически. Благодарю. –
- 1. Сохранить дату на основные данные
- 2. Как сохранить реляционные данные (основные данные)
- 3. iOS: Основные данные - мне нужно сохранить изменения?
- 4. Как сохранить основные данные приложения на сервере?
- 5. Основные данные, не могу сохранить контекст
- 6. Основные данные: сохранить изменения в постоянном хранилище
- 7. Основные данные отношения «один ко многим» сохранить
- 8. сохранить IOS Основные данные контекста ошибки
- 9. Основные данные: Как сохранить без сохранения?
- 10. Основные данные Редактировать/сохранить атрибуты в объекте
- 11. Основные данные сохранить модель не работает IOS
- 12. ошибка Основные данные о ManagedObjectContext Сохранить
- 13. Как сохранить NSMutableArray в основные данные?
- 14. Основные данные - Основные вопросы
- 15. Основные данные, хранящие ненужные данные
- 16. Помогите понять, как сохранить данные, пожалуйста. Основные данные vs plist
- 17. Как обновить основные данные и сохранить данные, сохраненные пользователем?
- 18. iphone основные данные вопрос
- 19. Основные данные и полупостоянные данные
- 20. Основные данные
- 21. Основные данные удаление
- 22. Основные данные с Restkit
- 23. Основные данные Отношения
- 24. Где сохраняются основные данные?
- 25. Основные данные и JSON
- 26. Основные данные executeFetchRequest slow
- 27. NSSet и основные данные
- 28. Основные данные NSFetchrequest integer
- 29. Основные данные сбой данных
- 30. Основные данные множественные Объекты
http://mobile.tutsplus.com/tutorials/iphone/core-data_schema-versioning-and-lightweight-migrations/ –