1

「ブール」タイプの属性を持つ Core Data 管理オブジェクトがあります。

私のヘッダー ファイルには次のように記述されています。

@dynamic includeInHistory 実装を使用しています

ディスクに保存する前にこの管理対象オブジェクトのインスタンスと対話すると、NSNumber インターフェイスを介して実際に NSCFBoolean にマップされるものがあります。「json-framework」を使用して、Core Data からの値を含む辞書をエンコードしています。

問題は、データを保存して取得した後、includeInHistory が標準の NSNumber のように見えるものを返すことです (ブール値ではなく整数)。JSON に変換すると、 includeInHistory : true ではなく "includeInHistory" : 1 にマップされるため、これは問題があります。

今のところ、JSON としてエクスポートしようとするたびに、ボックス化解除してから再ボックス化する必要がありましたが、これは私にはバグのように思えます...ここで何か不足していますか?

ありがとう

4

2 に答える 2

1

Core Data に関する限り、ブール値は値が 0 または 1 に制限された単なる NSNumber です。Core Data は、受信コントローラーおよび/またはビュー コードがそれを適切に表示することを期待しています。

ただし、NSManagedObjectとにかくサブクラス化しているので、ボックス化とボックス化解除を自動的に行う includeInHistoryValue メソッドを作成することをお勧めします。次に、JSON パーサーは代わりにプリミティブ ブール値を処理します。

これらのボックス化およびボックス化解除メソッドを追加し、サブクラスを自動的に維持するため、mogenerator の使用を検討することもできます。

于 2010-03-07T14:32:00.173 に答える
0

JSON フレームワークは、数値がブール型であることを認識していないようです。これはバグだと思います。報告することをお勧めします。

于 2009-11-09T03:56:26.213 に答える