Пользовательская миграция Core Data Migration - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь выполнить пользовательскую миграцию, следуя найденным инструкциям здесь , изменяя имя и тип атрибута, но, похоже, не выполняется сопоставление.

СтарыйМодель имеет атрибут имен «roundDrill», который является логическим.В новой модели это удалено, и новый атрибут с именем "killType", который является строкой.

У меня есть модель отображения, называемая "V2V3.xcmappingmodel", где у сущности есть настраиваемый набор политик "Diamond_Painting_Logbok.V2V3".Новый атрибут имеет значение "FUNCTION ($ entityPolicy," roundToType: ", $ source.roundDrill)"

В "V2V3.swift" у меня есть следующий код

import UIKit
import CoreData

class V2V3: NSEntityMigrationPolicy {
    func roundToType(isRound:NSNumber) -> String {
        NSLog("Round: \(isRound)")
        if isRound.boolValue {
            return "Round"
        } else {
            return "Square"
        }
    }
}

Когда я распечатываю значение DrillType, я получаю ноль.NSLog для функции не печатается вообще.Если я изменяю имя пользовательской политики, оно не выдает мне ошибку, поэтому кажется, что оно полностью игнорируется

1 Ответ

0 голосов
/ 09 апреля 2019

Итак, я нашел причину проблемы после разговора с яблоком, потому что у меня нет модели V1-V2, только V2-V3. Без этого все картографические модели игнорируются,

Они также сказали, что отображение работает некорректно, так как происходит сбой с "нераспознанным селектором, отправленным экземпляру", даже если это правильно, что это ошибка.

Они посоветовали использовать createDestinationInstances в качестве обходного пути, поэтому необходимо выяснить это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...