为什么Xcode为我的模型类的布尔属性生成NSNumber属性?

时间:2014-11-17 20:20:55

标签: ios xcode core-data code-generation nsmanagedobject

我使用Xcode创建了一个项目,并在.model文件中创建了一个新实体。我在这个实体中添加了一个名为“current”的属性boolean

然后我单击编辑器>创建NSManagedObject子类,并在创建的文件中,“当前”属性的类型为NSNumber ...为什么会这样?

@property (nonatomic, retain) NSNumber * current;

2 个答案:

答案 0 :(得分:2)

这是默认值。如果你想要标量,你需要点击"使用标量属性来表示原始数据类型"复选框,当它要求您创建文件的文件夹时。

答案 1 :(得分:0)

它是一个存储0或1的数字对象。

SQLite没有单独的布尔存储类。相反,布尔值存储为整数0(假)和1(真),这就是核心数据使用数值的原因。

NSNumber 是NSValue的子类,它提供任何C标量(数字)类型的值。它定义了一组专门用于设置和访问值的方法,如有符号或无符号字符,short int,int,long int,long long int,float或double或BOOL。 (请注意,数字对象不一定保留它们创建的类型。)它还定义了一个compare:方法来确定两个NSNumber对象的排序。