#ios #core-data #core-data-migration
#iOS #основные данные #основные данные-миграция
Вопрос:
Я действительно не знаю, где еще искать решение этой проблемы. В принципе, я дважды (или более) прочитал всю документацию и все страницы, которые я нашел в Интернете о миграции основных данных.
Мне пришлось изменить некоторые имена объектов (для удобства чтения), а также изменить значения домена, используемые в моих объектах. AFAIK, в этом случае я должен выполнить пользовательскую миграцию, потому что мне нужно проанализировать входные данные и сгенерировать новые выходные данные:
- Я создал новую версию модели (v7)
- Я обновил модель
- Переименованы существующие объекты, атрибуты и отношения.
- Добавлены / удалены некоторые атрибуты
- Я создал модель сопоставления (с версии 6 на версию 7)
- Я настроил модель сопоставления с использованием выражений
- Я создал две политики NSEntityMigrationPolicy (по одной для каждого объекта)
Миграция проходит хорошо для значений сущностей и полей, но ни одна из взаимосвязей не восстанавливается во время процесса.
Во время процесса выражение:
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RecentCallToRecentRecord", $source.recents)
ничего не возвращает.
Я отладил свою пользовательскую NSEntityMigrationPolicy, чтобы проверить, связаны ли объекты источника и назначения, как ожидалось, и происходит что-то очень странное. Во время выполнения createDestinationInstancesForSourceInstance:entityMapping:manager:error:
все в порядке, после вызова суперкласса я могу перемещаться от источника к месту назначения (и наоборот). Но во время выполнения createRelationshipsForDestinationInstance:entityMapping:manager:error:
этого навигация по объектам больше не работает.
Заранее спасибо за любую помощь.