CoreData类的重新声明无效

dps*_*art 38 core-data nsmanagedobject ios swift

我正在使用CoreData,在一个名为"RoleName"的实体上.

问题是:我在我的模型中单击"Create NSManagedObject subclass",因此它会自动为我的实体创建类.

但是,在类的声明中,我收到此错误:

无效的"RoleName"重新声明

即使我没有任何其他同名的课程.

Dee*_*yan 128

这是因为Xcode自己处理所有这些.我觉得这有点麻烦,因为自动生成的类没有我的所有属性.

因此,请按照以下步骤操作:

  • 删除您已经为核心数据创建的类.
  • 将class.Module设置为Current Product模块 在此输入图像描述

  • 将Class.codegen设置为Manual/None

在此输入图像描述

  • 现在选择您的实体并创建NSmanagedobject子类 在此输入图像描述

  • 你们都准备好了

  • "当前产品模块"步骤非常必要.谢谢@Deepukjayan (3认同)
  • 太棒了!无需此步骤即可工作“删除您已经为核心数据创建的所有类。” (2认同)

FBC*_*FBC 15

来自Apple:核心数据的新变化

Xcode自动子类生成

Xcode现在支持在建模工具中自动生成NSManagedObject子类.在实体检查员中:

手动/无是默认和以前的行为; 在这种情况下,您应该实现自己的子类或使用NSManagedObject.类别/扩展在名为ClassName + CoreDataGeneratedProperties的文件中生成类扩展.您需要声明/实现主类(如果在Obj-C中,通过标头扩展可以导入名为ClassName.h)."类定义"生成名为ClassName + CoreDataClass的子类文件以及为"类别/扩展"生成的文件.

生成的文件放在DerivedData中,并在保存模型后在第一个版本上重建.它们也被Xcode索引,因此命令单击引用并按文件名快速打开.

您不需要手动创建子类NSManagedObjects.

我建议你删除你创建的文件NSManagedObjects(将它们移动到废纸篓)并转到Codegen选择的下面的DataModel检查器中的每个实体:Manual / None并创建比子类.