架构 armv7 错误的重复符号

duplicate symbols for architecture armv7 Error

我的 swift 项目中有一个旧的 class "Approval.swift"

我在 Core Data 中添加了 NSManagedObject(批准),并为该实体

创建了具有相同名称 (Approval.swift) 的 NSManagedObject 子class

然后我将实体名称更改为 "ApprovalObject" 并将关联的 class 更改为 ApprovalObject.swift 以区别于旧的 class "Approval.swift"

当我尝试 运行 项目时,出现了这个错误

duplicate symbol _OBJC_METACLASS_$_Card in: /Users/MyUser/Library/Developer/Xcode/DerivedData/MyProject-czluntwgoefegbeilusmojsyejlc/Build/Intermediates/MyProject.build/Debug-iphoneos/MyProject.build/Objects-normal/armv7/ApprovalObject.o /Users/MyUser/Library/Developer/Xcode/DerivedData/MyProject-czluntwgoefegbeilusmojsyejlc/Build/Intermediates/MyProject.build/Debug-iphoneos/MyProject.build/Objects-normal/armv7/Card.o duplicate symbol _OBJC_CLASS_$_Card in: /Users/MyUser/Library/Developer/Xcode/DerivedData/MyProject-czluntwgoefegbeilusmojsyejlc/Build/Intermediates/MyProject.build/Debug-iphoneos/MyProject.build/Objects-normal/armv7/ApprovalObject.o /Users/MyUser/Library/Developer/Xcode/DerivedData/MyProject-czluntwgoefegbeilusmojsyejlc/Build/Intermediates/MyProject.build/Debug-iphoneos/MyProject.build/Objects-normal/armv7/Card.o

ld: 2 duplicate symbols for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)

有人可以帮我解决这个错误吗? 非常感谢

Duplicate symbols for architecture 主要原因是您在项目中添加了两次相同的 .m.o 文件。要解决此问题,只需检查链接器错误,就像您的情况一样,它显示 ApprovalObject。然后只需转到 build phases 然后 compile sources 并搜索指定的文件。

我在 Xcode 8 下新创建的应用程序遇到了相同类型的错误。经过大量调查,我发现引用了构建阶段 -> 编译源下的条目,我发现其中包含数据模型除了 .m 文件。删除它清除了错误,应用程序现在可以正确构建和运行。

我出现上述构建错误是因为我在另一个 .m 文件中导入了一个 .m 文件而不是 .h 文件