2010-10-10 80 views
3

我想弄清楚是什麼導致這次崩潰。我已經構建了應用程序並將其提供給我們的測試人員,但我們似乎無法可靠地重現此應用程序。它只是有時發生...在NSURLConnection中崩潰的應用程序

Thread 0 Crashed: 
0 libobjc.A.dylib    0x000027da objc_msgSend + 18 
1 Foundation      0x00032896 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 62 
2 Foundation      0x00032818 _NSURLConnectionDidFinishLoading + 72 
3 CFNetwork      0x00010dd8 URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*) + 160 
4 CFNetwork      0x00004ad4 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 96 
5 CFNetwork      0x000049c4 URLConnectionClient::processEvents() + 64 
6 CFNetwork      0x00004976 URLConnection::multiplexerClientPerform(RunLoopMultiplexer*) + 30 
7 CFNetwork      0x000048f4 MultiplexerSource::perform() + 120 
8 CFNetwork      0x00004872 MultiplexerSource::_perform(void*) + 2 
9 CoreFoundation     0x00055f1e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 6 
10 CoreFoundation     0x00027ba0 __CFRunLoopDoSources0 + 376 
11 CoreFoundation     0x00027444 __CFRunLoopRun + 224 
12 CoreFoundation     0x00027270 CFRunLoopRunSpecific + 224 
13 CoreFoundation     0x00027178 CFRunLoopRunInMode + 52 
14 GraphicsServices    0x000045ec GSEventRunModal + 108 
15 GraphicsServices    0x00004698 GSEventRun + 56 
16 UIKit       0x0000411c -[UIApplication _run] + 396 
17 UIKit       0x00002128 UIApplicationMain + 664 
18 myapp       0x000020d8 main (main.m:14) 
19 myapp       0x0000208c start + 32 

任何意見將不勝感激。該應用程序使用SDK 4.1在XCode 3.2.4中構建。

乾杯......

回答

1

本有一些合理的建議。打開NSZombieEnabled。

我幾乎可以100%肯定地告訴你它正在崩潰,因爲當代理試圖發送消息時你有一個零對象。

事實上,它只是有時崩潰,告訴我,你可能使用autorelease。 Autorelease不會在同一時間遞減保留計數,所以有時您的對象在獲取委託消息和應用程序時仍然處於活動狀態。但是,有時候這個對象會被釋放,並且應用程序崩潰。

+0

崩潰是因爲對象被釋放,然後內存被回收。在我的代碼中,我試圖調用委託respondsToSelector:但現在委託實際上是一些不採用NSObject協議的原始類型,因此無法處理消息。 – nicktmro 2010-10-11 18:43:20

2

我會嘗試打開NSZombieEnabled,看看是否能在這個問題上揭示任何光線。連接的委託是否仍然有效?

+0

你知道,這真的應該是一個評論。 – 2010-10-10 22:59:45

+0

謝謝你們,事情是這個崩潰發生在人們的設備上,而不是在模擬器中...... – nicktmro 2010-10-10 23:10:16

+0

殭屍檢測可能仍然有幫助。正如Ben所說,它看起來像NSURLConnection的委託不再有效。 – 2010-10-10 23:20:28