NSManagedObject 子类中的重复符号错误
Duplicate Symbol Error in NSManagedObject Subclass
我只是简单地用 Core Data 创建了一个演示项目。
我在我的数据模型中创建了一个实体 Userinfo
。现在我创建了这个实体的 NSManagedObject
子类。
Xcode 自动生成了这 4 个 类。
现在当我构建项目时它抛出这个错误:
我已尽我所能消除重复错误,但没有任何帮助。
我认为这是一个 Xcode 错误。请帮忙。
您正在生成的文件已经由 Xcode 为您生成,因此得到了重复的声明。有关此功能(Xcode 8 中的新功能)的详细信息,请参见 this WWDC video。
两个可能的修复:
1) 使用 Xcode 生成的 ManagedObject
子类(推荐的现代方法)
- 从项目中删除所有生成的 NSManagedObject 子类(如果存在)。
- 在您的
.xcdatamodel
中为所有实体将 Codegen
设置为 Class Definition
- 确保
Module
为空("Global Namespace" 为浅灰色)(解决方法是一个 Apple 错误,请参阅 this answer)
- 清理项目
- Clean DerivedData folder(可选。为了节省开支)
- 建造
注:
切勿将自动生成的文件添加到您的项目中。即使您在项目中看不到生成的文件,Xcode 也有对它的引用,因此您可以编写扩展等。例如:
extension MyEntity {
func doSomething() {
//
}
}
此外,您可以在 Xcode.
内命令+单击生成的文件
2) 手动触发子类生成(一种相当偏执但可靠的方法,忽略新的 Xcode 功能)
- 从项目中删除所有生成的 NSManagedObject 子类(如果存在)。
- 在您的
.xcdatamodel
中将所有实体的 Codegen
设置为 Manual/None
- 清理项目
- Clean DerivedData folder
- 重启Xcode
- 手动生成
NSManagedObject
个子类(在 "Editor" 菜单中)
- 确保这些文件已添加到您的项目中
- 建造
我只是简单地用 Core Data 创建了一个演示项目。
我在我的数据模型中创建了一个实体 Userinfo
。现在我创建了这个实体的 NSManagedObject
子类。
Xcode 自动生成了这 4 个 类。
现在当我构建项目时它抛出这个错误:
我已尽我所能消除重复错误,但没有任何帮助。
我认为这是一个 Xcode 错误。请帮忙。
您正在生成的文件已经由 Xcode 为您生成,因此得到了重复的声明。有关此功能(Xcode 8 中的新功能)的详细信息,请参见 this WWDC video。
两个可能的修复:
1) 使用 Xcode 生成的 ManagedObject
子类(推荐的现代方法)
- 从项目中删除所有生成的 NSManagedObject 子类(如果存在)。
- 在您的
.xcdatamodel
中为所有实体将Codegen
设置为Class Definition
- 确保
Module
为空("Global Namespace" 为浅灰色)(解决方法是一个 Apple 错误,请参阅 this answer)
- 清理项目
- Clean DerivedData folder(可选。为了节省开支)
- 建造
注:
切勿将自动生成的文件添加到您的项目中。即使您在项目中看不到生成的文件,Xcode 也有对它的引用,因此您可以编写扩展等。例如:
extension MyEntity {
func doSomething() {
//
}
}
此外,您可以在 Xcode.
内命令+单击生成的文件2) 手动触发子类生成(一种相当偏执但可靠的方法,忽略新的 Xcode 功能)
- 从项目中删除所有生成的 NSManagedObject 子类(如果存在)。
- 在您的
.xcdatamodel
中将所有实体的Codegen
设置为Manual/None
- 清理项目
- Clean DerivedData folder
- 重启Xcode
- 手动生成
NSManagedObject
个子类(在 "Editor" 菜单中) - 确保这些文件已添加到您的项目中
- 建造