我在分析我的crashlog時遇到問題。當我點擊應用程序圖標啓動應用程序時,iPhone有時會崩潰。該應用程序已在後臺「運行」,但未處於活動狀態。這是符號崩潰日誌:iOS應用程序在Core Location回調機器中崩潰
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);
請給我一個提示,如何找到錯誤。
預先感謝您!
看起來像'CLLocationManager'中的一些代碼崩潰了。您是否在應用中使用位置跟蹤? – 2011-03-06 19:43:25
嗨!是的,我使用位置跟蹤。我在AppDelegate中有一個CLLocationManager,我從didFinishLaunchingWithOptions方法開始。每當使用需要位置的視圖控制器時,我將視圖控制器設置爲CLLocationManager的委託,以便使用適當的didUpdateToLocation方法。這個可以嗎?謝謝! – sqeez3r 2011-03-06 20:31:14
您是否在進入背景時將代表設置爲零?如果不是,已經被設置爲委託的視圖控制器可能已被釋放,這將導致崩潰。另外,您需要查看崩潰日誌的頂部以查看發生的位置。如果崩潰在線程0上,那麼你的主函數將總是在回溯的底部。 – ughoavgfhw 2011-03-07 00:41:29