Основные взаимосвязи данных не переносятся (пользовательская миграция)

#ios #core-data #core-data-migration

#iOS #основные данные #основные данные-миграция

Вопрос:

Я действительно не знаю, где еще искать решение этой проблемы. В принципе, я дважды (или более) прочитал всю документацию и все страницы, которые я нашел в Интернете о миграции основных данных.

Мне пришлось изменить некоторые имена объектов (для удобства чтения), а также изменить значения домена, используемые в моих объектах. AFAIK, в этом случае я должен выполнить пользовательскую миграцию, потому что мне нужно проанализировать входные данные и сгенерировать новые выходные данные:

  1. Я создал новую версию модели (v7)
  2. Я обновил модель
    • Переименованы существующие объекты, атрибуты и отношения.
    • Добавлены / удалены некоторые атрибуты
  3. Я создал модель сопоставления (с версии 6 на версию 7)
  4. Я настроил модель сопоставления с использованием выражений
  5. Я создал две политики NSEntityMigrationPolicy (по одной для каждого объекта)

Модели

Миграция проходит хорошо для значений сущностей и полей, но ни одна из взаимосвязей не восстанавливается во время процесса.

Во время процесса выражение:

 FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RecentCallToRecentRecord", $source.recents)
  

ничего не возвращает.

Я отладил свою пользовательскую NSEntityMigrationPolicy, чтобы проверить, связаны ли объекты источника и назначения, как ожидалось, и происходит что-то очень странное. Во время выполнения createDestinationInstancesForSourceInstance:entityMapping:manager:error: все в порядке, после вызова суперкласса я могу перемещаться от источника к месту назначения (и наоборот). Но во время выполнения createRelationshipsForDestinationInstance:entityMapping:manager:error: этого навигация по объектам больше не работает.

Заранее спасибо за любую помощь.