У меня есть приложение, в котором было много миграций основных данных, над проектом работали несколько разработчиков, и в какой-то момент оказалось, что не удалось правильно перенести основную модель данных. Конечным результатом является то, что люди, которые обновились с определенной версии приложения до текущей версии приложения, не могут сохранить свой контекст в магазине (это сохранение происходит, когда приложение переходит в фоновый режим).
Зарегистрированная ошибка выглядит следующим образом:
This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.
К счастью, пользователи вряд ли заметят слишком много этого сбоя и ошибки, так как это происходит во время выхода из приложения, а приложение предназначено для простого извлечения любых данных из Интернета, которые отсутствуют локально, поэтому неудачное сохранение не так критично, как это было бы, если бы какие-либо созданные пользователем данные были потеряны. Конечно, это далеко не идеально, чтобы повторно загружать данные, которые просто не сохраняются в магазине при выходе из приложения.
В конечном итоге мой вопрос заключается в том, как мне решить эту проблему в будущем?
Моя идея состоит в том, чтобы выпустить незначительное обновление, которое полностью сбрасывает базовую постоянную модель данных. Сотрите все старые хранилища данных и начните заново (помните, что все данные поступают с сервера). Пользователь не потеряет данные, и это решит проблемы в будущем. Есть ли идея получше?
Кроме того, если бы я решил делать что-то именно так, как бы я поступил правильно? Могу ли я просто заглянуть в свой пакет и удалить все файлы .momd, а затем воссоздать новый с другим именем? Или удаление не нужно, и простое присвоение новых имен даст желаемые результаты?