1

バグを追跡しようとしていますが、次のようなクラッシュ ログがあります。

0    libobjc.A.dylib     objc_msgSend + 15

1    CoreFoundation  __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14

2    CoreFoundation  __CFRunLoopDoTimer + 272

3    CoreFoundation  __CFRunLoopRun + 1232

4    CoreFoundation  CFRunLoopRunSpecific + 356

5    CoreFoundation  CFRunLoopRunInMode + 104

6    GraphicsServices    GSEventRunModal + 74

7    UIKit   UIApplicationMain + 1120

8    MyApp  main.m line 21

残念ながら、MyApp 行は、私のアプリケーションについて言及しているスレッドの中で唯一の場所です。

このようなクラッシュを引き起こしている可能性のあるもののポインタはありますか?

ありがとう!

4

2 に答える 2

0

アプリは、もう存在しないものを呼び出そうとしています。また、呼び出しはタイマーなどを介して別の実行ループからトリガーされますが、既に解放されています。

そのため、タイマーが起動する前に消えてしまう可能性のあるオブジェクトにタイマーが設定されているかどうかを確認することをお勧めします。

于 2012-11-02T19:13:54.340 に答える
0

他の回答が示唆するように、これはゾンビオブジェクトが原因です。インスタンスの割り当てが既に解除されているオブジェクトに対して呼び出しが行われています。

ゾンビ インストルメントを使用し、スキームでゾンビ オブジェクトを有効にして、クラッシュの場所を特定してください。これは、割り当てが解除されたオブジェクトと、クラッシュの原因となっているメソッドを特定するのに役立ちます。ほとんどの場合、これは委任が使用されている場合に発生します。

これは役に立ちます: https://developer.apple.com/library/ios/recipes/Instruments_help_articles/FindingMessagesSenttoDeallocatedObjects/FindingMessagesSenttoDeallocatedObjects.html

于 2015-06-03T12:11:34.917 に答える