У меня есть приложение, которое читает показания ветра на сайтах по всему миру. Я решил использовать iCloud и Core Data с помощью приложения стиля для обуви.Перенос данных ядра iCloud вручную
Обновление данных о ветре ежечасно, после нескольких недель использования приложения, я понял, что это была плохая идея, так как данные iCloud/Core просто заполняются мегабайтами транзакций, а восстановление устройства занимает 10 минут, чтобы загрузить магазин в свежее устройство.
Мое решение состояло в том, чтобы использовать конфигурации Core Data, чтобы «сайты» были сохранены в хранилище iCloud, но ежечасные изменения «показаний ветра», которые удаляются через 12 часов, были сохранены в локальном магазине. Если это облегчает представление, оно работает подобно RSS «сайтам» и «записям», которые меняются ежечасно.
Все это отлично работает, но я не могу понять, как написать код миграции для версии 2.0 моего приложения. Прочитав, как работают конфигурации, мне пришлось удалить родительские/дочерние отношения между сайтами и показаниями ветра и использовать запросы выборки, чтобы связать их с помощью общего UUID сайтаIdentifier.
Выполнение этого так, я полагаю, я не могу использовать легкие миграции? Кроме того, загрузка обновленного файла модели .momd дает мне последнюю модель, так как я могу получить исходный файл модели для загрузки магазина и делать все вручную.
С другой стороны, это слишком сложно, и я бы лучше удалил поддержку iCloud или есть другой способ, который вы порекомендовали бы?
Спасибо Marcus, ваш совет по итерации через содержимое .momd на форуме разработчиков Apple также был большой помощью. [Сообщество разработчиков App Dev] (https://devforums.apple.com/thread/179423?tstart=0) – Electron
Теперь у меня автоматическая миграция. Можно ли подключиться к уведомлению после обновления магазинов? – Electron
Как только ваш код проходит '-addPersistentStore ... ', миграция завершена. Дополнительного уведомления не требуется, потому что блоки '-addPersistentStore ...'. –