輝々凛々

ガンバるってことは、素晴らしい事だ。

NSInteger/int/NSNumber/id/CoreData

NSIntegerは、単に整数を表すPOD型ですが、型のサイズを規定しません。つまりビルドターゲットによって、32bit/64bitへ変化します。

intは単に32bit整数のPOD型です。longは64bit整数のPOD型です。

NSNumberは、数を表すクラス型です。NSArrayやNSMutableArrayには、POD型の整数や小数をそのまま格納することはできません。そこで、POD型をラッピングしたNSNumberクラスのインスタンスを作成し、そのインスタンスをNSArrayに格納します。また、後述するid型への代入のために使用することもあります。

id型は、(void*) 相当の型です。あらゆるクラスのインスタンスを格納するために使用します。

CoreDataにデータを格納する場合、[coreDataObject setValue:value forKey:@"myKeyName"]とします。ここで、valueはid型ですので、intなどのPOD型は、いったんNSNumberクラスのインスタンスにしてからデータを格納します。

See also

関連記事

ツッコミの投稿


(ツッコミ非公開の場合はチェック)