2011-02-25 55 views
0

我的應用程序在構建和調試時效果很好,但是當我自己運行時,由於其他一些問題而崩潰。
我有一個NSObject類,一個UITableView類,一個UIView類,一個UITableViewCell類和一個NSOperation類。 任何機構是否有類似的問題,或有任何人可以幫助我。如何識別崩潰日誌中的錯誤

Application Specific Information: 
objc_msgSend() selector name: release 
iPhone Simulator 235, iPhone OS 4.2 (iPhone/8C134) 

Thread 0 Crashed: Dispatch queue: com.apple.main-thread 
0 libobjc.A.dylib     0x01134a67 objc_msgSend + 27 
1 UIKit       0x004ab1e2 -[UITableViewCell removeFromSuperview] + 167 
2 UIKit       0x003249d9 -[UIView dealloc] + 340 
3 UIKit       0x0032e281 -[UIScrollView dealloc] + 341 
4 UIKit       0x003661ce -[UITableView dealloc] + 1085 
5 Foundation      0x000698da __delayedPerformCleanup + 59 
6 CoreFoundation     0x00f4bbde CFRunLoopTimerInvalidate + 446 
7 CoreFoundation     0x00fb57d7 __CFRunLoopDoTimer + 1799 
8 CoreFoundation     0x00f11cc9 __CFRunLoopRun + 1817 
9 CoreFoundation     0x00f11240 CFRunLoopRunSpecific + 208 
10 CoreFoundation     0x00f11161 CFRunLoopRunInMode + 97 
11 GraphicsServices    0x01874268 GSEventRunModal + 217 
12 GraphicsServices    0x0187432d GSEventRun + 115 
13 UIKit       0x002fa42e UIApplicationMain + 1160 
14 Time       0x00001e08 main + 102 (main.m:14) 
15 Time      0x00001d99 start + 53 
+2

發佈您的代碼。你正在釋放一些東西。 – robertvojta 2011-02-25 18:18:13

+0

是否有可能知道哪一行結束從崩潰錯誤中釋放,因爲我找不到該行或該文件。 – lifemoveson 2011-02-25 18:36:17

+0

@lifemoveson:您需要發佈您的代碼才能獲得滿意的答案,因爲無法通過查看崩潰日誌來猜測實際可能會造成崩潰的原因。 – 2011-02-25 18:40:13

回答

1

這篇技術對crashlogs技術信息:

http://developer.apple.com/library/mac/#technotes/tn2004/tn2123.html

但是,你有一個調試的問題,而不是創建系統崩潰問題。

看到的提示進行調試這裏:

http://www.cocoadev.com/index.pl?DebuggingTechniques

解釋崩潰日誌需要練習。這裏的人看到這個:removeFromSuperview立即想到「啊哈,一個線索!這可能是一個內存問題」,因爲removeFromSuperview將刪除一個視圖,然後遞減它的保留計數。如果保留計數已經爲零,則再減少一次可能會導致崩潰。因此,他們認爲你超過你釋放UITableViewCell

檢查你的UITableViewCell的分配/初始化,釋放或自動釋放...

+0

非常感謝。當一些抽象信息讓你瘋狂時,調試崩潰真的很痛苦。我在自動釋放我的UITableViewCell,我認爲這是必要的,因爲我爲它分配了空間,但事實證明這不是必需的。 iOS需要即興地提供內存管理,而不提供如此多的內存處理選項。 – lifemoveson 2011-02-28 21:04:31