2012-09-10 426 views
0

我試着恢復回來在我的源代碼中的方式,試圖找出是什麼導致嚴重問題。核心數據對象刪除崩潰應用程序

當我刪除NSManagedObjects從核心數據我的應用程序崩潰,並提出以下建議:

CoreData`_nameForEntityDescription: 

注意,我看到了錯誤的NSManagedObject S的一個,而不是另一個NSManagedObject S以及。

我使用MagicalRecord來獲取我的核心數據需求,但我並不懷疑這是問題所在。在這一點上,我非常難以解決問題。

是否有任何核心數據專家能夠給我提示有關這個問題的任何提示?

我也看到有_nameForEntityDescription完全相同的問題,當我試圖抓住一組NSManagedObjects的一個對象(通過它的關係):

NSSet* delSet = [NSSet setWithSet:contact.contactEmails]; 

所以它看起來似乎是用NSManagedObject腐敗模型,但我已經看過我所擁有的一切,我看不到它會是什麼:(

+0

除非你願意提供具體的細節,否則你所得到的只是猜測。你有一個特定的問題。你的問題也應該提供具體的細節。 –

+0

是的,我知道。我一直在黑暗中拍攝一天。如果有幫助,我已經更新了更多細節的答案。 – runmad

回答

1

我在過去刪除對象時發生崩潰因爲您沒有足夠的細節,所以我會給你一些一般的東西來檢查:

1)當你刪除一個對象時,確保你沒有任何未完成的引用。在刪除對象後保存上下文時,您將刪除商店中的後備參考。這意味着,您的對象在數據庫中沒有實際記錄。下一次使用該對象時,Core Data將會對你大喊。

2)當你有線程後臺保存時,問題1發生了很多。您可以使用的解決方案是在保存後重新提取所有數據對象引用,以確保您擁有正確的數據和有效的對象。 MagicalRecord提供了一個完成塊機制來幫助你解決這個問題。

如果您懷疑您的ManagedObjectModel是問題,我還必須做一個乾淨的構建,並從模擬器/設備中刪除應用程序以刪除任何以前的構建工件。

+0

這個問題最終導致無法使用核心數據中的抽象實體,而現在我已經遠離了!但是我對節省進行了一些調整,所以線程少了,現在都很好。謝謝! – runmad