我正在尝试按照here找到的说明进行自定义迁移,更改属性名称和类型,但似乎没有运行映射。
旧模型的属性名称为“ roundDrill”,它是一个布尔值。新模型已删除,并添加了一个名为String的新属性“ drillType”。
我有一个名为“ 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的值时,我得到的是nil。 完全不打印该功能上的NSLog。如果我更改了自定义策略名称,它不会给我一个错误,因此看起来好像它被完全忽略了
答案 0 :(得分:0)
所以在与苹果公司交谈后,我发现了问题的原因,这是因为我没有V1到V2的型号,只有V2到V3的型号。否则,所有映射模型都将被忽略,
他们还说,该映射未正确运行,因为它崩溃了,尽管“正确的选择器已发送给实例”,但它是错误的。
他们建议使用createDestinationInstances作为解决方法,因此需要弄清楚这一点