使用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;
数据模型中的类型设置为布尔值。 我不知道为什么我现在得到它们,以及我应该怎么做。
答案 0 :(得分:1)
正如错误消息所示,NSManagedObject
已经有一个名为&#34的属性;已更新"
@property(nonatomic, getter=isUpdated, readonly) BOOL updated
由于您从NSManagedObject
继承并具有相同名称的属性,因此会产生冲突。即使在您的核心数据模型中,您也可以设置自己的类型"更新"如您所见,属性为布尔值,CoreData将其存储为NSNumber。所以基本上你改变你继承的属性的类型会导致编译器抱怨。
最好的办法是为您的财产选择一个不同的名称。