NSManagedObject
オブジェクトの作成中に「プリミティブデータ型にスカラープロパティを使用する」をいつチェックする必要がありますか?
費用はかかりますか(データベースのパフォーマンスが向上するか、軽量化されますか)?
2 に答える
iOS5およびOSX10.7より前では、スカラープロパティを自動生成できず、セッターとゲッターの実装を追加する必要がありました。これにより、ペナルティが発生します。自動生成されたプロパティが最適化されます。私は他の罰則を知りません。
スカラープロパティと非スカラープロパティはDBで同じタイプで表されるため、DBのサイズに変更はありません。
これらのプロパティにアクセスする方法に応じて、スカラーをいつ使用するかを選択する必要があります。たとえば、コレクション(NSArray、NSSet、NSDictionary)に追加する場合は、スカラープロパティをcocoaオブジェクトでラップする必要があります。
Core Dataは、整数、浮動小数点数、ブール値などの多くの一般的なデータ型をサポートしています。ただし、デフォルトでは、データモデルエディタはこれらの属性を
NSNumber
管理対象オブジェクトサブクラスのプロパティとして生成します。これにより、アプリケーションコード内のこれらのオブジェクトに対して、、、、または同様の呼び出しが無限floatValue
に発生することがよくあります。boolValue
integerValue
NSNumber
ただし、これらのプロパティを正しいスカラータイプ(たとえば、、、、、など)で指定することもでき、CoreDataで
int64_t
機能float_t
しBOOL
ます。NSManagedObject
Xcodeには、ジェネレーターの保存ダイアログ(「プリミティブデータ型にスカラープロパティを使用する」)に小さなチェックボックスがあり、これを実行します。