0

「ゾンビオブジェクトを有効にする」をオンにしたところ、次のようになりました。

2012-08-06 13:43:05.452 MyApp[234:707] *** -[MyViewController respondsToSelector:]: message sent to deallocated instance 0x97a6c50

知りたいのですが、MyViewControllerにメッセージを送信しているオブジェクトを見つける簡単な方法はありますか?MyViewControllerはさまざまなもののデリゲートであり、どのものがメッセージを送信しているかを把握したいと思います。

4

2 に答える 2

4

デバッガーでスタックトレースを要求して、どの関数が他のどの関数を呼び出したかを確認できます。たとえば、GDBを使用すると、次のように表示されます。

(gdb) bt
0x01234567 in main()
0xabcdef12 in UIApplicationMain
0xdef01234 in - [AppDelegate application:didFinishLaunchingWithOptions:]

于 2012-08-06T13:01:48.830 に答える
3

Instrumentsを使用してアプリを起動できます。これにより、オブジェクトの完全なライフサイクルが表示されます。それが保持され解放された場所、そしてそれがゾンビに変わった場所。Instrumentsを起動し、ゾンビテンプレートを選択して、アプリを使用するだけです。その後、それが生成するきちんとフォーマットされた出力を見てください

于 2012-08-06T13:09:18.250 に答える