Итак, во-первых, этот вопрос очень помог с получением правильного пути к работе ядра. управление версиями данных. Поэтому я добавил новую версию для своей модели, и теперь я пытаюсь заставить работать автоматическую миграцию, но у меня есть проблема. Я не могу вспомнить, как выглядела моя старая версия! Я пытаюсь запустить приложение на своем телефоне, но я Некоторое время пользовался симулятором и внес несколько изменений в схему. Версия на телефоне довольно давно. Поэтому каждый раз, когда я пытаюсь изменить старую версию на то, что, по моему мнению, находится на телефоне, я все равно получаю сообщение об ошибке «Не могу найти модель для источника». Я предполагаю, что это потому, что я неправильно понял старую схему.
Можно ли мне как-то выяснить, как эта схема выглядит на телефоне? За исключением этого, как я могу просто стереть хранилище sqlite с телефона, чтобы я мог начать все сначала с версии 1?
Сообщение об ошибке означает, что не удается найти скомпилированный файл модели .mom
для существующего хранилища. Core Data ищет точную версию .mom, которая настроила хранилище. Файл .mom сообщает Core Data, как отображать сериализованные данные в файле в объекты. Без этого файла модели он не знает, как перенести хранилище в новую модель, потому что он не знает, какие данные идут с каждой сущностью или свойством сущности.
Я видел это только один раз, и причина IIRC заключалась в том, что новый файл .mom
имел то же имя и местоположение, что и старый. При обновлении приложения старый файл .mom
был перезаписан.
Попробуйте изменить имя файла новой модели и посмотрите, поможет ли это. Если нет, нам, вероятно, потребуется больше подробностей о том, что вы делаете.