Xcode8 生成CoreData NSManagedObject 報Duplicate symbol error

上周寫CoreData的時候,當使用Editor的Create NSManagedObject SubClass 生成好對應Entity的ManagedObject后,編譯的時候報Duplicate symbol error,意思是符號重復定義的錯誤,一臉蒙蔽好吧,都是系統生成的,我什么都沒有做=。=

然后網上搜了一下,搜到了問題的原因和解決方案
duplicate-symbol-error-when-adding-nsmanagedobject-subclass-duplicate-link
xcode-beta-8-cant-create-core-data

原因

Xcode 8 的.xcdatamodeId 文件會自動生成那些Entity的類,當你在Editor->Create NSManagedObject SubClass 再次生成這些Entity類的時候,編譯的時候,就會有符號重定義的錯誤

解決方案

  • 當你不需要自己修改NSManagedObject 文件時候,就使用Xcode生成的文件,直接引用頭文件就好。
  • 當你需要自己修改NSManagedObject 文件,在Xcode中選中.xcdatamodeId 文件 在右側屬性欄中, 把Tools Version 修改成小于8.0的版本 ,然后就可以使用Editor 生成NSManagedObject類了。 修改Entity Inspector 里Class對應的Codegen
    如下圖:
1.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容