2010-06-13 149 views
0

我剛升級到SDK 3.2。我的應用程序在調試模式下運行在Simulator 3.0中,但是當我將模擬器更改爲使用3.2運行時,它與EXEC_BAD_ACCESS一起崩潰。在iPhone模擬器3.2中運行時應用程序崩潰(在模擬器3.0中正常運行)

它正在崩潰在objc_msgsend方法。

INT主(INT ARGC,CHAR *的argv []){

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
int retVal = UIApplicationMain(argc, argv, nil, nil); <======== THE STACK TRACE starts here. 
[pool release]; 
return retVal; 

}

任何想法是怎麼回事?我絕對不知道。任何幫助/建議將不勝感激?

感謝 一個

回答

0

很可能使用的是過時的代碼。

你所顯示的堆棧跟蹤是主應用程序循環 - 這並沒有什麼幫助。你需要進一步觀察堆棧。查找您編寫的代碼並查看可能存在的問題。

您可能會嘗試使用不正確的格式化程序記錄某些內容。例如:NSLog(@"%@", 55);(55是一個整數,而不是一個字符串)。也許你正試圖修改一個不可變的對象。

請您張貼更多的堆棧(或整個東西),以便我們可以看到它嗎?你寫的代碼也可以在這裏幫助。

+0

這是我寫的堆棧跟蹤中唯一的東西。其他的一切都來自iphone庫。在發生這種情況時,我的代碼都不會被調用。我的理論: 蘋果已經改變了垃圾收集器。一些消息是從一段代碼發送來清理一個對象,但該對象已經被清除。這有意義嗎?如果是的話如何檢查呢? 謝謝 A – amitabh 2010-06-14 13:32:25

+0

iPhone開發中沒有垃圾收集器。你需要釋放東西。也許你是過度釋放的東西。如果你想在這裏發佈你的源代碼,你可以在「[email protected]」給我留下印象。使用'NSLog()'來找出代碼崩潰的地方。 – Moshe 2010-06-14 13:58:50

相關問題