2010-09-23 79 views
0

我今天在客戶端,並在那裏做了一些錯誤修復。我將應用程序的工作副本部署到他們的iPad和iPhone上。完善。我回到家,現在在模擬器中運行應用程序....但它每次崩潰,我不知道如何。不幸的是,我看不到我改變了哪些會導致這種情況。ipad/iphone應用程序EXC_BAD_ACCESS只在模擬器中,不在設備上

有誰知道爲什麼你會在模擬器上看到錯誤信息Program received signal: 「EXC_BAD_ACCESS」而不是iPad或iPhone?

我使用的Xcode 3.2.4的iPhone 3GS和iPad 3.2.2 OS4.1上OSX 10.6.4運行

感謝任何信息。我正在把我的頭髮撕掉....!

[更新]

這裏的地方它的失敗

- (void)dealloc 
{ 
if (_node) 
    { 
    if (_node->_private == self) //THIS IS THE LINE that debug is stopping on 
     _node->_private = NULL; 
    _node = NULL; 
    } 
// 
[super dealloc]; 
} 
+0

你可能在最近一分鐘的變化中改變了某些東西,這些變化並沒有起作用。發佈一些代碼將有所幫助。此外,你是否已經通過使用斷點來嘗試找出問題? – MishieMoo 2010-09-23 19:59:58

+0

如果您從XCode調試器運行模擬器調試版本,調試器會顯示錯誤/崩潰的位置? – hotpaw2 2010-09-23 20:33:05

+0

也可能想嘗試啓用NSZombie來查看正在發生的事情。 – 2010-09-23 20:34:54

回答

1

代碼是否有任何機會,這個對象的心不是被正確地保留?模擬器的內存很快被重用,因此如果一個指針的保留計數變爲0,它將很快重新映射,下一次訪問可能會炸燬....在我的經驗中,重複使用內存在設備上會變慢。根據對象的類型,可以使用CFGetRetainCount或[_node - > _ private retainCount] ;.如果對象仍然沒有一個。

+0

這是一個與構建和模擬器的問題 - 也許模擬器內存​​不高興!我刪除了所有的版本,關閉了所有內容並重新啓動。似乎已經解決了這個問題。很奇怪。 – 2010-09-28 21:16:22

0

_node被奇怪地使用。從你的使用 - >它似乎是一個指針。但是你將它設置爲NULL。這是釋放指針或刪除對其的引用的一種非常奇怪的方式。

你是否在其他地方釋放_node?在調用之前,可能_node被釋放。這會給你一個問題,當你嘗試使用它。

相關問題