問題描述:
duplicate symbol _OBJC_CLASS_$_Person in:/Users/suruikeji/Library/Developer/Xcode/DerivedData/CoreData_Demo-gwbqmxvuoisdjsekqjhmlknqktgk/Build/Intermediates/CoreData_Demo.build/Debug-錯誤信息:iphonesimulator/CoreData_Demo.build/Objects-normal/x86_64/Person+CoreDataClass.o
duplicate symbol _OBJC_METACLASS_$_Person in:/Users/suruikeji/Library/Developer/Xcode/DerivedData/CoreData_Demo-gwbqmxvuoisdjsekqjhmlknqktgk/Build/Intermediates/CoreData_Demo.build/Debug-iphonesimulator/CoreData_Demo.build/Objects-normal/x86_64/Person+CoreDataClass.o
ld: 2 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
根據信息說Person+CoreDataClass.o文件重復了。
這是因為在Xcode8.0中包含了一個自動生成NSManagedObject的機制,如果你打開該機制則會在project(Derived Data目錄中)實際生成的DerivedSources文件夾中出現同名的源代碼文件。
按一下方法解決:
1.打開在model file的inspector,選擇Tools Version為 Xcode 7.3
2.或者你可以根據不同的entity去分別選擇啟用還是關閉自動生成機制;選擇model file中特定的entity,打開其Data Model Inspector窗口,將其中的Codegen選項設置為Manual/None: