Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为布尔属性自动生成的NSManagedObject子类会导致警告_Ios_Objective C_Xcode_Core Data - Fatal编程技术网

Ios 为布尔属性自动生成的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用于布尔属性。这和以前没什么不同。问题是它现在向我显示了两个警告

在CoreData模型中,我有一个名为TestEntity的实体。此实体有一个名为“deleted”的布尔类型属性

如果我使用Xcode为该实体自动生成NSManagedObject子类,则生成的类头如下所示:

@interface TestEntity : NSManagedObject

@property (nonatomic, retain) NSNumber * deleted;

@end
我理解为什么NSNumber用于布尔属性。这和以前没什么不同。问题是它现在向我显示了两个警告:

  • 属性“deleted”的getter属性与从“NSManagedObject”继承的属性不匹配
  • 属性类型“NSNumber*”与从“NSManagedObject”继承的类型“BOOL”(也称为“BOOL”)不兼容 我不想使用基本类型。有没有办法摆脱这些警告?
    这可能是我使用的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中没有收到警告。我们希望这是苹果发出的信号,让我们知道他们正在解决所有核心数据问题:)”。不,他们将这些属性从只读方法更改为属性,这就是为什么会出现错误。这发生在许多框架中,而不仅仅是核心数据。