2

クラッシュログの分析に問題があります。アプリのアイコンをクリックしてアプリを起動すると、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);

エラーを見つける方法のヒントを教えてください。
前もって感謝します!

4

2 に答える 2

5

nilコントローラから戻る前に(または少なくともコントローラで)デリゲートをに設定しますdeallocか?CLLocationManagerが、すでに割り当てが解除されているデリゲートにメッセージを送信しようとしていると思われます。そのため、obj_msgSendでクラッシュします。

于 2011-03-07T00:39:53.227 に答える
0

4.3でアプリをテストしても同じ問題が発生しましたが、5.0では発生しませんでした。問題は、デリゲートメソッドの1つでCLLocationManagerのロックを解除しようとしていたことでした。5.0では正常に動作しますが、4.3を実行しているiPhone3GSは毎回クラッシュします。

最後に、CLLocationManagerオブジェクトをプロパティにし、delegateメソッドでdelegateをnilに設定し、オブジェクトを解放するためにブロックをメインスレッドにディスパッチしました。

于 2012-04-24T21:08:49.870 に答える