2012-03-15 119 views
2

我在嘗試從UITableView中刪除一個對象時越來越斷斷續續,難以跟蹤CoreData異常。調試核心數據異常

有很多關於SO的討論,但它們都是針對各種實現的,並且很難應用到您自己的實踐中。我看過的教程對設置很有幫助,但不是很好地教你解決問題的方法。

什麼是調試/問題的最佳方法解決此類型的CoreData錯誤,以及正確執行的期望流程是什麼?

象這樣的錯誤之一:

嚴重的應用程序錯誤。在調用 -controllerDidChangeContent:時,NSFetchedResultsController的委託人 發現了一個異常。無效更新:部分0中的行數無效。更新(3)後現有部分 中包含的行數必須等於更新前(3)部分的 中包含的行數,加或減(0插入,1刪除)和加上 或減去移入或移出該部分的行數(0移動了 in,0移出)的行數 。 with userInfo(null)

回答

0

您是否嘗試過使用異常斷點? - 它應該告訴你導致你的異常的特定行代碼。 要添加一個到xcode中的斷點導航器,請點擊導航器左下角的「+」並點擊添加異常斷點。

+0

謝謝,是的,我有 - 所有這些告訴我的是,我在上一個錯誤[self.tablview endupdates]到目前爲止還沒有很好用。 – glenstorey 2012-03-17 23:29:53

0

我認爲這裏發生的一切是,你需要調整NSMutableArray(或其他),以便刪除對象,告訴NSFetchedResultsController剛剛被刪除。您之前有3個對象,您表示其中一個已被刪除,然後期望0節中的行現在應該包含2個,而不是它仍然檢測到的3個。

我意識到這不是你問的確切問題,但「最好的方法」的問題可能有點普遍,以獲得一個很好的單一答案。

+0

這個問題實際上是由一個多餘的FetchedResultsController和UITableView作爲它的委託(這裏有一個討論:http://stackoverflow.com/a/9755379/459116)引起的,但我仍然希望有一些策略在將來進行調試,而不是那些特定於這種情況的那些。 CoreData一直是一個調試的麻煩! – glenstorey 2012-03-18 19:23:59