2011-10-05 86 views
3

我突然被一個奇怪的問題絆倒了。我有一個相當廣泛的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。

+2

你確定xcdatamodel被複制到你的應用程序?僅僅將它添加到項目中可能還不夠,因此您可能還需要檢查構建設置以確保它包含在內。您還可以在文件系統上追蹤您的內置.app軟件包並打開它以查看是否包含數據模型文件。 – Alex

+0

哇。那太棒了。我唯一的問題是:它到底如何被刪除? 非常感謝。希望我昨天能明白這一點。會爲我節省大量的時間。現在我回去調試我的/其他/問題! 再次感謝。 –

+0

將數據模型文件添加到當前構建目標(側欄右側) –

回答

3

@Alex想通了。出於某種原因,xdatamodel已從構建設置中刪除。我加回來了,它工作。我真的不明白爲什麼它會首先被刪除。它在一個建築物和下一個建築物之間消失。

2

通過從模擬器和我的iPhone中刪除應用程序來修復此問題。

顯然數據庫在早期運行時沒有實體。然後,一旦我添加了實體並連線了所有東西,就開始收到類似上面的錯誤...

刪除應用程序允許重新創建數據庫並修復問題。

相關問題