应用程序崩溃在NSURLConnection

时间:2010-10-10 22:51:38

标签: iphone objective-c ios

我正在试图找出造成这次崩溃的原因。我已经为我们的测试人员构建并提供了应用程序,但我们似乎无法可靠地重现这一点。它有时会发生......

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中构建。

干杯...

2 个答案:

答案 0 :(得分:2)

我会尝试启用NSZombieEnabled,看看是否能解决这个问题。连接的代表是否仍然有效?

答案 1 :(得分:1)

Ben有一些合理的建议。将NSZombieEnabled打开。

我几乎可以肯定地告诉你它崩溃了,因为当委托人试图向它发送消息时你有一个nil对象。

事实上它有时只会崩溃,这告诉我你可能正在使用自动释放。自动释放永远不会在完全相同的时间减少保留计数,因此有时您的对象在获取委托消息并且应用程序正常工作时仍然处于活动状态。但是,有时该对象将被释放并且应用程序崩溃。