上周寫(xiě)CoreData的時(shí)候,當(dāng)使用Editor的Create NSManagedObject SubClass 生成好對(duì)應(yīng)Entity的ManagedObject后函卒,編譯的時(shí)候報(bào)Duplicate symbol error坠宴,意思是符號(hào)重復(fù)定義的錯(cuò)誤巫员,一臉蒙蔽好吧不铆,都是系統(tǒng)生成的,我什么都沒(méi)有做=移剪。=
然后網(wǎng)上搜了一下,搜到了問(wèn)題的原因和解決方案
duplicate-symbol-error-when-adding-nsmanagedobject-subclass-duplicate-link
xcode-beta-8-cant-create-core-data
原因
Xcode 8 的.xcdatamodeId 文件會(huì)自動(dòng)生成那些Entity的類薪者,當(dāng)你在Editor->Create NSManagedObject SubClass 再次生成這些Entity類的時(shí)候纵苛,編譯的時(shí)候,就會(huì)有符號(hào)重定義的錯(cuò)誤
解決方案
- 當(dāng)你不需要自己修改NSManagedObject 文件時(shí)候,就使用Xcode生成的文件攻人,直接引用頭文件就好取试。
- 當(dāng)你需要自己修改NSManagedObject 文件,在Xcode中選中.xcdatamodeId 文件 在右側(cè)屬性欄中怀吻,
把Tools Version 修改成小于8.0的版本 瞬浓,然后就可以使用Editor 生成NSManagedObject類了。修改Entity Inspector 里Class對(duì)應(yīng)的Codegen
如下圖: