NSArrayController에 바인딩 된 NSTableView가 코어 데이터에 바인딩됩니다. 표는 잘 핵심 데이터의 정수 값을 표시하지만이 표에 숫자를 편집하는 경우 오류가 발생합니다 : 나는 어레이 컨트롤러 시도하기 전에 INT16 다시이 포인터 문자열을 변환 할 수있는 방법NSArrayController NSTableView 코어 데이터 바인딩 정수
Unacceptable type of value for attribute: property = "armorclass"; desired type = NSNumber; given type = NSTaggedPointerString; value = 10.
어떤 제안 다시 코어 데이터로 저장 하시겠습니까?
다음 ValueTransformer를 작성했지만 제대로 작동하지 않습니다. 난 항상 오류 : 문서에서이 메모를 AppDelegate
override init()
{
let stringIntegerValueTransformer = StringIntegerValueTransformer()
ValueTransformer.setValueTransformer(stringIntegerValueTransformer, forName:NSValueTransformerName(rawValue: "StringIntegerValueTransformer"))
super.init()
}
의 값 변압기 무시 init
을 등록하고 고려하는 이름 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
}
}