1. 程式人生 > >Xcode8 使用CoreData生成物件檔案出現編譯錯誤解決方案

Xcode8 使用CoreData生成物件檔案出現編譯錯誤解決方案

問題描述:

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</p><p>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: