Основные данные не могут найти модель для исходного хранилища - как выглядел мой старый магазин?

Итак, во-первых, этот вопрос очень помог с получением правильного пути к работе ядра. управление версиями данных. Поэтому я добавил новую версию для своей модели, и теперь я пытаюсь заставить работать автоматическую миграцию, но у меня есть проблема. Я не могу вспомнить, как выглядела моя старая версия! Я пытаюсь запустить приложение на своем телефоне, но я Некоторое время пользовался симулятором и внес несколько изменений в схему. Версия на телефоне довольно давно. Поэтому каждый раз, когда я пытаюсь изменить старую версию на то, что, по моему мнению, находится на телефоне, я все равно получаю сообщение об ошибке «Не могу найти модель для источника». Я предполагаю, что это потому, что я неправильно понял старую схему.

Можно ли мне как-то выяснить, как эта схема выглядит на телефоне? За исключением этого, как я могу просто стереть хранилище sqlite с телефона, чтобы я мог начать все сначала с версии 1?

10
задан Community 23 May 2017 в 12:32
поделиться

1 ответ

Сообщение об ошибке означает, что не удается найти скомпилированный файл модели .mom для существующего хранилища. Core Data ищет точную версию .mom, которая настроила хранилище. Файл .mom сообщает Core Data, как отображать сериализованные данные в файле в объекты. Без этого файла модели он не знает, как перенести хранилище в новую модель, потому что он не знает, какие данные идут с каждой сущностью или свойством сущности.

Я видел это только один раз, и причина IIRC заключалась в том, что новый файл .mom имел то же имя и местоположение, что и старый. При обновлении приложения старый файл .mom был перезаписан.

Попробуйте изменить имя файла новой модели и посмотрите, поможет ли это. Если нет, нам, вероятно, потребуется больше подробностей о том, что вы делаете.

5
ответ дан 3 December 2019 в 20:39
поделиться
Другие вопросы по тегам:

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