Вы начинаете с создания модели отображения между исходной и целевой моделями.Оттуда вы хотите выбрать объект в модели отображения, который вы хотите обработать этим разделением.Справа от редактора модели сопоставления вы увидите, где можно назвать класс NSEntityMigrationPolicy
.Добавив сюда пользовательский класс политики сопоставления, вы можете указать переносу использовать ваш код вместо стандартного кода.
Оттуда создайте класс и сделайте его подклассом NSEntityMigrationPolicy
.Внутри этого класса переопределите метод -createDestinationInstancesForSourceInstance: entityMapping: manager: error:
.Этот метод будет вызываться один раз для каждого объекта, и вы несете ответственность за создание целевого объекта и копирование всех атрибутов из источника в место назначения.Как часть этой копии вы можете разделить имя на имя и фамилию, исходя из логики, которую вы считаете подходящей.В конце этого метода убедитесь, что вы вызываете -associateSourceInstance: withDestinationInstance: forEntityMapping:
, чтобы NSMigrationManager
знал о вновь созданном целевом объекте, а остальная часть миграции работала корректно.
ПРИМЕЧАНИЕ: вам не нужнопереопределите любой из методов, связанных с отношениями, если только вам не нужно писать собственный код для них.
Это все, что нужно сделать.