2017-11-14 12 views
0

NSArrayControllerにバインドされたNSTableViewは、コアデータにバインドされています。テーブルには、きれいにコアデータから整数値を表示しますが、私はテーブル内の数字を編集する場合、私はエラーを取得する:私は、アレイコントローラを試みる前にInt16型に戻し、このポインタの文字列を変換する方法のNSArrayController NSTableViewコアデータバインディング整数

Unacceptable type of value for attribute: property = "armorclass"; desired type = NSNumber; given type = NSTaggedPointerString; value = 10. 

任意の提案それをCore Dataに保存するには?

次の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 
    } 
} 

答えて

1

FFFと値の変圧器を見つけることができません

Your NSValueTransformer subclasses are not automatically listed in the Interface Builder bindings inspector. When inspecting a binding you can enter the name that the value transformer is registered with, but the functionality will not be present in Interface Builder’s test mode. When your application is compiled and run the transformer will be used

0

テキストフィールドに数値フォーマッタを追加します。

関連する問題