0

NSNumberの処理をスキップして、NSIntegerを直接操作する方法はありますか?

4

2 に答える 2

3

CoreDataはNSNumbersのみを許可します。ただし、NSIntegerプロパティを使用するカスタムゲッターとセッターを作成できます。mogeneratorは、それを自動的に行う素晴らしいツールです。すべてのエンティティのネイティブプロパティを持つクラスを生成します。

于 2011-08-12T18:56:56.960 に答える
2

いいえNSInteger。オブジェクトではなく、長整数の単なるtypedefです。

実際の実装:

#if __LP64__ || NS_BUILD_32_LIKE_64
  typedef long NSInteger;
  typedef unsigned long NSUInteger;
#else
  typedef int NSInteger;
  typedef unsigned int NSUInteger;
#endif

このクラスでは、プリミティブ型( 、など)をオブジェクトにNSNumberカプセル化できます。オブジェクトは、プロパティリストとコアデータに保存できます。intfloat

例:

float pi = 3.1415;
NSNumber *piNumber = [NSNumber numberWithFloat:pi];

NSNumberその後、オブジェクトに格納されている値に簡単にアクセスしたり、変換したりできます。

int piAsInteger = [piNumber intValue];
于 2011-08-12T18:56:12.777 に答える