2011-12-08 46 views
1

我對Core Data有以下問題。由核心數據關係引起的EXC_BAD_ACCESS?

在包含名爲Next的一對一關係的實體上,我使用Next關係從一個實例轉到下一個關係。這工作正常。

使用下面的代碼:

error=nil; 
[context save:&error]; 
NSLog(@"Error:%@",error); 

我在gdb下檢查我的數據都保存沒有任何問題。

這是麻煩來臨時。關閉模擬器後(使用Command-Q);當我重新啓動應用程序時,出現此錯誤(在gdb中): 程序接收信號:「EXC_BAD_ACCESS」。 它發生試圖執行下面的代碼行的時候:

item=[item valueForKey:@"Next"]; 

而且在某些時候我在調試器中看到像一些事情: 這個類不是鍵值編碼兼容的關鍵下一步

由於在使用Command-Q關閉應用程序之前,事情完美無缺,我的代碼不能100%錯誤,但顯然它也有一些錯誤。 這有什麼明顯的原因嗎?

實際上,如果這個不明確。我做了一個很小的樣本項目來說明我的問題,以防有人有時間和興趣去看待它。它顯示一個從1到3的計數器,並有2個按鈕來前後移動計數器。但我只是不確定如何在這個網站上上傳這樣一個示例項目。

在這一點上,我試圖開始使用樂器希望找到一些錯誤,但到目前爲止沒有成功。該程序在一個階段而不是在之後(即使是我的小樣本測試)我懷疑由於我使用核心數據的方式錯誤導致一些棘手的問題。

回答

1

最有可能你擊中的線EXC_BAD_ACCESS是一個紅色的鯡魚。雖然,它可以提供一些線索。

不要去想你具體做什麼這裏:

item=[item valueForKey:@"Next"]; 

恰好你正在分配的valueForKey結果原來的item什麼?如果它不是一個自動釋放對象,那麼你就有一個問題。

無論如何,首先關閉蝙蝠,結帳我剛剛提到的問題。接下來,運行分析器。然後,如果您已經修復了所有這些問題,並且仍然存在問題,請開始在樂器中運行「泄漏」工具。

有關詳細信息,有什麼原因導致這些錯誤,並步步爲如何解決逐步說明優秀的鏈接一起,看看這些問題的答案:

finding reason for EXC_BAD_ACCESS - in Xcode4

Random EXC_BAD_ACCESS in a place that it cannot happen

+1

謝謝,這似乎是我應該檢查的一些有趣的觀點。與此同時,我做了一個樣本項目來說明我的絆腳石。項目只是一個指針(在循環數據結構中),並沒有被分配,我不認爲應該有內存問題。 – Michel