我突然被一個奇怪的問題絆倒了。我有一個相當廣泛的CoreData數據模型,我已經將它(和包含它的項目)複製到我正在處理的原型的新項目中。我得到它的工作,並混合和匹配新的實體和屬性。CoreData:'NSInternalInconsistencyException',原因:'+ entityForName:無法在此模型中找到名爲'DocumentLocations'的實體。'
突然,並沒有明顯的原因,我突然發現了以下錯誤:
'NSInternalInconsistencyException', reason: '+entityForName: could not locate an entity named 'DocumentLocations' in this model.'
我挖成的整個過程用於創建的NSManagedObjectContext,NSPersistentStoreCoordinator和NSManagedObjectModel,並已經得到的地步很明顯,對象模型沒有被加載。我執行以下命令:
_managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
但是,當我尋找在模型中的實體加載後(此方法從主束創建模型如果傳遞零至mergedModelFromBundles),什麼都沒有。
看來我的xdatamodel文件沒有被Xcode或模擬器看到。我完全不知道爲什麼不。我將嘗試通過顯式加載URL來強制解決問題,但我不確定這將如何工作。
任何線索?核心數據問題可能會令人困惑。隨着時間的推移,我已經設法解決了大部分問題,但這是一個令人頭疼的問題。
編輯:亞歷克斯搞明白了。我只想知道該模型是如何從Xcode中的「編譯源」列表中刪除的。 Wish Xcode更可靠。真的可以成爲PITA。
你確定xcdatamodel被複制到你的應用程序?僅僅將它添加到項目中可能還不夠,因此您可能還需要檢查構建設置以確保它包含在內。您還可以在文件系統上追蹤您的內置.app軟件包並打開它以查看是否包含數據模型文件。 – Alex
哇。那太棒了。我唯一的問題是:它到底如何被刪除? 非常感謝。希望我昨天能明白這一點。會爲我節省大量的時間。現在我回去調試我的/其他/問題! 再次感謝。 –
將數據模型文件添加到當前構建目標(側欄右側) –