Ios 为布尔属性自动生成的NSManagedObject子类会导致警告
在CoreData模型中,我有一个名为TestEntity的实体。此实体有一个名为“deleted”的布尔类型属性 如果我使用Xcode为该实体自动生成NSManagedObject子类,则生成的类头如下所示:Ios 为布尔属性自动生成的NSManagedObject子类会导致警告,ios,objective-c,xcode,core-data,Ios,Objective C,Xcode,Core Data,在CoreData模型中,我有一个名为TestEntity的实体。此实体有一个名为“deleted”的布尔类型属性 如果我使用Xcode为该实体自动生成NSManagedObject子类,则生成的类头如下所示: @interface TestEntity : NSManagedObject @property (nonatomic, retain) NSNumber * deleted; @end 我理解为什么NSNumber用于布尔属性。这和以前没什么不同。问题是它现在向我显示了两个警告
@interface TestEntity : NSManagedObject
@property (nonatomic, retain) NSNumber * deleted;
@end
我理解为什么NSNumber用于布尔属性。这和以前没什么不同。问题是它现在向我显示了两个警告:
这可能是我使用的Xcode 6 beta 7(iOS 8 beta 5)的一个bug。已提交错误报告,因为使用Xcode自动生成的类在任何情况下都不会导致编译器警告。您设法使用了一个名称与NSManagedObject现有方法冲突的属性
解决方案:更改属性的名称。不要称之为“已删除”,而应称之为其他内容 我查看了NSManagetObject头文件,苹果似乎是这样使用它的
// state - methods can be used through KVC, for example for enabling/disabling widgets based on the state of the object
@property (nonatomic, getter=isInserted, readonly) BOOL inserted;
@property (nonatomic, getter=isUpdated, readonly) BOOL updated;
@property (nonatomic, getter=isDeleted, readonly) BOOL deleted;
尝试更改实体的属性名称,我猜这不会是一个轻量级的核心数据迁移案例。请确保在提交代码之前检查此项
我不知道苹果是否这样做了,但我在iOS 7中没有收到任何警告。我们希望这是苹果发出的信号,让我们知道他们正在解决所有核心数据问题:)“我不知道苹果是否刚刚这么做,但我在iOS 7中没有收到警告。我们希望这是苹果发出的信号,让我们知道他们正在解决所有核心数据问题:)”。不,他们将这些属性从只读方法更改为属性,这就是为什么会出现错误。这发生在许多框架中,而不仅仅是核心数据。