我在分析崩溃日志时遇到问题。当我单击应用程序图标启动应用程序时,iPhone 有时会崩溃。该应用程序已在后台“运行”,但未处于事件状态。这是符号化的崩溃日志:
Thread 0 Crashed:
0 libobjc.A.dylib 0x33479470 objc_msgSend + 28
1 CoreLocation 0x3436f68e -[CLLocationManager onClientEvent:supportInfo:] + 98
2 CoreLocation 0x3436f804 OnClientEvent + 16
3 CoreLocation 0x3436b522 CLClientInvokeCallback(__CLClient*, CLClientEvent, __CFDictionary const*) + 42
4 CoreLocation 0x3436cf74 CLClientHandleDaemonDataRegistration(__CLClient*, CLDaemonCommToClientRegistration const*, __CFDictionary const*) + 668
5 CoreLocation 0x3436d4c8 CLClientHandleDaemonData(__CFMessagePort*, long, __CFData const*, void*) + 212
6 CoreFoundation 0x33a813fe __CFMessagePortPerform + 242
7 CoreFoundation 0x33a556f8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
8 CoreFoundation 0x33a556bc __CFRunLoopDoSource1 + 160
9 CoreFoundation 0x33a47f76 __CFRunLoopRun + 514
10 CoreFoundation 0x33a47c80 CFRunLoopRunSpecific + 224
11 CoreFoundation 0x33a47b88 CFRunLoopRunInMode + 52
12 GraphicsServices 0x33b0e4a4 GSEventRunModal + 108
13 GraphicsServices 0x33b0e550 GSEventRun + 56
14 UIKit 0x32099322 -[UIApplication _run] + 406
15 UIKit 0x32096e8c UIApplicationMain + 664
16 Norddeich 0x00002764 main (main.m:14)
17 Norddeich 0x00002718 start + 32
据我了解堆栈跟踪,错误发生在 main.m 中。第 14 行是默认代码的一部分:
int retVal = UIApplicationMain(argc, argv, nil, nil);
请给我一个提示,如何找到错误。
提前谢谢!
Best Answer-推荐答案 strong>
在从 Controller 返回之前(或至少在 Controller 的 dealloc 中),您是否将它的委托(delegate)设置为 nil ?我怀疑 CLLocationManager 正在尝试向已解除分配的委托(delegate)发送消息 - 这就是它在 obj_msgSend 崩溃的原因。
关于iphone - iOS 应用在 Core Location 回调机制中崩溃,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/5212471/
|