CoreData类的重新声明无效

时间:2016-11-03 19:56:18

标签: ios swift core-data nsmanagedobject

我正在使用CoreData,在名为" RoleName"。

的实体上

问题是:我点击"创建NSManagedObject子类"从我的模型中,它自动为我的实体创建类。

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

  

" RoleName"

的重新声明无效

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

2 个答案:

答案 0 :(得分:124)

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

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

  • 删除您已为核心数据制作的任何课程。
  • 将class.Module设置为Current Product模块 enter image description here

  • 将Class.codegen设置为Manual / None

enter image description here

  • 现在选择您的实体并创建NSmanagedobject子类 enter image description here

  • 你们已经完成了

答案 1 :(得分:13)

来自Apple:Whats new in Core Data

  

Xcode自动子类生成

     

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

     

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

     

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

您不需要为NSManagedObjects手动创建子类。

我建议您删除使用NSManagedObjects创建的文件(将其移至“已删除邮件”),然后转到Codegen下的DataModel检查器中的每个实体,选择:Manual / None并创建比子类。