我只是用Core Data创建了一个演示项目。
我在数据模型中创建了一个实体Userinfo
。现在我创建了这个实体的NSManagedObject
子类。
Xcode自动生成这4个类。
现在,当我构建项目时,它会抛出此错误:
我已经做了我所知道的一切,以消除重复的错误,但没有任何帮助。
我认为这是一个Xcode错误。请帮忙。
答案 0 :(得分:13)
您正在生成已由Xcode为您生成的文件,从而获得重复声明。有关此功能的详细信息(Xcode 8中的新功能)可以在this WWDC video中找到。
两种可能的修复方法:
1)使用Xcode生成的ManagedObject
子类(推荐的现代方法)
Codegen
中为所有实体Class Definition
至.xcdatamodel
Module
为空(浅灰色的“全局命名空间”)(解决Apple漏洞,请参阅this answer)注意:
永远不要将自动生成的文件添加到项目中。即使您没有在项目中看到生成的文件,Xcode也会引用它,因此您可以编写扩展等。例如:
extension MyEntity {
func doSomething() {
//
}
}
此外,您可以在Xcode中命令+单击生成的文件。
2)手动触发子类生成(一种相当偏执但经过子弹验证的方法,忽略了新的Xcode功能)
Codegen
中为所有实体Manual/None
至.xcdatamodel
NSManagedObject
子类(在“编辑器”菜单中)