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

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:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容