有什么方法可以跳过处理 NSNumber 并直接使用 NSInteger 吗?
问问题
5364 次
2 回答
3
Core Data 将只允许 NSNumbers。但是,您可以编写自定义 getter 和 setter 来使用 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 回答