NSNumberの処理をスキップして、NSIntegerを直接操作する方法はありますか?
5364 次
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
カプセル化できます。オブジェクトは、プロパティリストとコアデータに保存できます。int
float
例:
float pi = 3.1415;
NSNumber *piNumber = [NSNumber numberWithFloat:pi];
NSNumber
その後、オブジェクトに格納されている値に簡単にアクセスしたり、変換したりできます。
int piAsInteger = [piNumber intValue];
于 2011-08-12T18:56:12.777 に答える