2

プロパティ金額を持つコア データ エンティティがあります NSDecimalNumber。このプロパティでは、エンティティのクラスにNSDecimalNumberas 引数で定義されたメソッドがあります。

Interface Builder で、テーブル列をこのプロパティにバインドし ( を使用NSArrayController)、列のセルにNSNumberFormatter. フォーマッタは IB で「通貨」として設定されます。

今、数字を入力しようとすると、次のエラーが表示されます。

-[NSCFNumber decimalNumberBySubtracting:]: unrecognized selector sent to instance 0x1001d5590

どうやら私のセッターメソッドNSNumberNSDecimalNumber. NSNumberおそらく IB ではなくコードでフォーマッターを別の方法で構成できますか、それともas 引数を使用してセッターを追加する唯一のオプションですか?

4

2 に答える 2

2

Core Data は を保存せずNSDecimalNumber、 のみを保存しNSNumberます。NSNumber呼び出されるメソッドがありません。

使用するエンティティ定義を変更するか、コア データに格納するNSNumberために独自に構築する必要があります。NSValueTransformerNSDecimalNumber

プロパティの詳細については、http: //developer.apple.com/library/ios/ipad/#documentation/Cocoa/Conceptual/CoreData/Articles/cdMOM.html%23//apple_ref/doc/uid/TP40002328を参照してください。-SW1

于 2011-03-06T08:58:38.283 に答える
1

あなたの問題がどこにあるのか正確にはわかりません。フォーマッタが NSDecimalNumber の代わりに単純な NSNumber を提供しているか、コア データが提供されています。

NSNumberFormatter で NSDecimalNumbers を取得するには、-setGeneratesDecimalNumbersメソッドを使用します。

データ ストアが NSDecimalNumbers を取得できるようにするには、モデル内の関連する属性が「10 進数」に設定されていることを確認してください。

于 2011-03-06T11:38:17.940 に答える