3

CoreData マネージド オブジェクトを作成するコードがアプリに含まれています。このコードでは、次の行を使用してプロパティを設定します。

theAuthor.authorID = 1;

プロパティは、管理対象オブジェクト ヘッダーで次のように宣言されます。

@property (nonatomic) uint32_t authorID;

iOS 5 では正常に動作しますが、iOS 4.3 でデバッグすると、次のエラーが発生します。

プロパティ 'authorID' は、クラス 'Author' のスカラー型です。そのセッター メソッドを生成できません。

4.3 ではこのエラーが発生するのに、5 では発生しないのはなぜですか? スカラー プロパティを避ける必要がありますか? 私は C から Obj-C にたどり着いたので、より最適化されていると感じるので、できる限りスカラーを使用することを好みます。

ゲッターとセッターを実装するか、代わりに NSInteger または NSNumber を使用するようにコードを変更した方がよいでしょうか?

4

1 に答える 1

3

コア データでスカラー属性を使用する方法については、こちらを参照してください。(ちなみに、NSInteger はスカラーです)。リスト 3 は、あなたが関心を持っている特定のものです。基本的には、独自のアクセサーを作成する必要がありますが、難しくはありません。

iOS5 以降、コア データでスカラー プロパティを使用できます。これは、データ モデルから管理対象オブジェクトのサブクラスを生成するときに、適切なボックスにチェックを入れることで実現できます。

于 2011-10-19T09:41:54.730 に答える