核心数据已自动生成我NSManagedObject
的子类。我的实体包含名为 isActive 的布尔。当自动生成子类时,此属性的类型为NSNumber
。由于这是一个布尔值,我必须编写如下代码:
if ([myEntity.isActive boolValue])
我认为我非常奇怪。解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
没有什么可以解决,真的,这是正常的,并按预期工作。
如果您不喜欢它,请选中标记为"使用标量属性作为原始数据类型的框#34;在生成子类时。然后,布尔属性将生成为BOOL
,因此无法在其上调用boolValue
。
当您这样做时,您还会提到最终为NSTimeInterval
的日期属性。我同意,这很烦人。但是:你可以混合和匹配标量和对象属性。生成步骤没有任何魔力,你看到的代码就是它的全部内容。因此,使用标量属性生成,为您提供:
@property (nonatomic) NSTimeInterval myDate;
然后只需编辑该行,如下所示:
@property (nonatomic, retain) NSDate * created;
但请原样保留isActive
财产。 Voila,标量访问一个属性,但对象式访问另一个属性。
答案 1 :(得分:1)
使用“Create NSManagedObject Subclass”选项生成子类时,必须取消选中“使用基本数据类型的标量属性”复选框。