在NSManagedObject子类中重复的符号错误

我只是用Core Data创build了一个演示项目。

我在我的数据模型中创build了一个实体Userinfo 。 现在我创build了这个实体的一个NSManagedObject子类。

Xcode自动生成了这4个类。

在这里输入图像说明

现在当我build立这个项目时,会抛出这个错误:

在这里输入图像说明

我已经尽我所知去除重复的错误,但没有任何帮助。

我认为它是一个Xcode错误。 请帮忙。

您正在生成Xcode已经为您生成的文件,从而得到重复的声明。 有关此function的详细信息(Xcode 8中的新增function)可以在此WWDCvideo中find。

两个可能的修复:

1)使用Xcode生成的ManagedObject子类(推荐的,现代的方法)

  • 如果存在,从您的项目中删除所有生成的NSManagedObject子类。
  • 在所有实体的.xcdatamodel设置为Class Definition
  • 确保Module是空的(“全局命名空间”,浅灰色)(解决苹果的错误,看到这个答案 )

  • 清洁项目
  • 清理DerivedData文件夹 (可选,要保存)
  • build立

注意:

切勿将自动生成的文件添加到您的项目中。 即使你没有看到你的项目中生成的文件,Xcode有一个引用,所以你可以写扩展等。 例如:

 extension MyEntity { func doSomething() { // } } 

此外,你可以命令+点击Xcode中生成的文件。

2)手动触发子类的生成(一个相当偏执但bullet – certificate的方法,忽略新的Xcodefunction)

  • 如果存在,从您的项目中删除所有生成的NSManagedObject子类。
  • 在所有实体的.xcdatamodel设置为Manual/None
  • 清洁项目
  • 清理DerivedData文件夹
  • 重新启动Xcode
  • 手动生成NSManagedObject子类(在“编辑器”菜单中)
  • 确保这些文件已添加到您的项目
  • build立