我有一个绑定到 NSArrayController 的 NSTableView,而后者又绑定到 Core Data。该表很好地显示了核心数据中的整数值,但如果我编辑表中的数字,则会出现错误:
Unacceptable type of value for attribute: property = "armorclass"; desired type = NSNumber; given type = NSTaggedPointerString; value = 10.
关于如何在数组控制器尝试将其保存回核心数据之前将此指针字符串转换回 Int16 的任何建议?
我写了以下 ValueTransformer 但它不能正常工作。我总是收到错误:找不到名称为 StringIntegerValueTransformer 的值转换器
class StringIntegerValueTransformer: ValueTransformer {
override class func transformedValueClass() -> AnyClass { //What do I transform
return String.self as! AnyClass
}
override class func allowsReverseTransformation() -> Bool { //Can I transform back?
return false
}
override func transformedValue(_ value: Any?) -> Any? {
if let val = value {
return String(describing: val)
}
return "nil"
}
override func reverseTransformedValue(_ value: Any?) -> Any? { //Revert transformation
if let val = value {
return val as? Int16
}
return nil
}
}
fff