-1

Core Data 自动生成了 my 的子类NSManagedObject。我的实体包含一个名为isActive的布尔值。当子类自动生成时,该属性的类型为. 由于这是一个布尔值,我必须编写如下代码:NSNumber

if ([myEntity.isActive boolValue])

我觉得我很奇怪。解决这个问题的最佳方法是什么?

4

2 回答 2

2

没有什么要解决的,真的,这很正常,并且按预期工作。

如果您只是不喜欢它,请在生成子类时选中标记为“对原始数据类型使用标量属性”的框。然后布尔属性将生成为BOOL,因此没有任何理由调用boolValue它们。

NSTimeInterval您还提到了在您执行此操作时结束的日期属性。我同意,这很烦人。但是:您可以混合和匹配标量和对象属性。生成步骤没有什么神奇之处,你看到的代码就是它的全部。因此,使用标量属性生成,它为您提供:

@property (nonatomic) NSTimeInterval myDate;

然后只需将该行编辑为如下所示:

@property (nonatomic, retain) NSDate * created;

但请保持您的isActive财产原样。瞧,对一个属性的标量访问,但对另一个属性的对象式访问。

于 2013-10-08T15:53:57.580 回答
1

当您使用“创建 NSManagedObject 子类”选项生成子类时,您必须取消选中“使用原始数据类型的标量属性”复选框。

于 2013-10-08T15:54:04.270 回答