使用核心数据定义布尔值

时间:2014-09-17 15:59:09

标签: objective-c iphone core-data

使用Xcode 6,我收到以下两个警告:

.../objects/DOArticle.h:26:42: 'getter' attribute on property 'updated' does not match the property inherited from 'NSManagedObject'
.../objects/DOArticle.h:26:42: Property type 'NSNumber *' is incompatible with type 'BOOL' (aka 'signed char') inherited from 'NSManagedObject'

对象定义为:

@property (nonatomic, strong) NSNumber * id;
@property (nonatomic, strong) NSNumber * commonId;
@property (nonatomic, strong) NSString * title;
@property (nonatomic, strong) NSNumber * read;
@property (nonatomic, strong) NSNumber * updated;
@property (nonatomic, strong) NSNumber * removed;

数据模型中的类型设置为布尔值。 我不知道为什么我现在得到它们,以及我应该怎么做。

1 个答案:

答案 0 :(得分:1)

正如错误消息所示,NSManagedObject已经有一个名为&#34的属性;已更新"

@property(nonatomic, getter=isUpdated, readonly) BOOL updated

由于您从NSManagedObject继承并具有相同名称的属性,因此会产生冲突。即使在您的核心数据模型中,您也可以设置自己的类型"更新"如您所见,属性为布尔值,CoreData将其存储为NSNumber。所以基本上你改变你继承的属性的类型会导致编译器抱怨。

最好的办法是为您的财产选择一个不同的名称。