【问题标题】:Why did Xcode generate an NSNumber property for my model class's boolean attribute?为什么 Xcode 会为我的模型类的布尔属性生成 NSNumber 属性?
【发布时间】:2014-11-17 20:20:55
【问题描述】:

我使用 Xcode 创建了一个项目,并在 .model 文件中创建了一个新实体。我向这个实体添加了一个名为“当前”的布尔类型的属性

然后我点击Editor>Create NSManagedObject subclass,在创建的文件中,“current”属性的类型是NSNumber...这是为什么呢?

@property (nonatomic, retain) NSNumber * current;

【问题讨论】:

  • 仅供参考。在导出子类时,您可以通过选择“对原始数据类型使用标量属性”来更改该行为。

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


【解决方案1】:

这是默认设置。如果你想要标量,当它询问你创建文件的文件夹时,你需要点击“使用原始数据类型的标量属性”复选框。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 2011-10-20
      • 2014-03-09
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多