Core data NSArrayController NSTableView核心数据绑定整数
我有一个绑定到NSArrayController的NSTableView,而NSArrayController又绑定到核心数据。该表很好地显示了核心数据中的整数值,但如果编辑表中的数字,则会出现错误:Core data NSArrayController NSTableView核心数据绑定整数,core-data,nstableview,nsarraycontroller,nstablecellview,Core Data,Nstableview,Nsarraycontroller,Nstablecellview,我有一个绑定到NSArrayController的NSTableView,而NSArrayController又绑定到核心数据。该表很好地显示了核心数据中的整数值,但如果编辑表中的数字,则会出现错误: Unacceptable type of value for attribute: property = "armorclass"; desired type = NSNumber; given type = NSTaggedPointerString; value = 10. 在阵列控制器尝试
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在
AppDelegate
override init()
{
let stringIntegerValueTransformer = StringIntegerValueTransformer()
ValueTransformer.setValueTransformer(stringIntegerValueTransformer, forName:NSValueTransformerName(rawValue: "StringIntegerValueTransformer"))
super.init()
}
并考虑文档
中的注释 NSValueTransformer子类不会自动列在Interface Builder绑定检查器中。检查绑定时,可以输入值转换器注册的名称,但该功能不会出现在Interface Builder的测试模式中。编译并运行应用程序时,将使用转换器将数字格式化程序添加到文本字段