0

xcode4.2でnszombieを有効にしました。(product-> editSchemeから)

私はこのメッセージを受け取りました:

-[buttons respondsToSelector:]: message sent to deallocated instance 0x48ae50

私はボタンクラスを持っていますが、このメッセージによる正確な問題がわかりません。

NSZombieからもっと多くを得ることができますか?

4

2 に答える 2

2

問題は、タイプボタンのオブジェクトの割り当てが解除されてから、 respondsToSelector:メソッドが呼び出されたことです。そのオブジェクトはアドレス 0x48ae50 にあります。

NSZombies なしで実行していた場合、アプリケーションはクラッシュしていたでしょう。

于 2012-04-19T08:39:45.013 に答える
0

この特定のメッセージが意味することは、buttonsインスタンス (で0x48ae50) が割り当て解除された (別名released) ということです。したがって、respondsToSelector:メッセージを送信しようとするとnothing(インスタンスの割り当てが解除されたことを思い出してください)、エラーがスローされます。

トリガーされている場所の近くにブレークポイントを設定してみて、その理由を確認してください... (今のところ、buttonsオブジェクトのアドレスは のようになります0x0)

ほとんどの場合 (すべてではないにしても)、これはメモリ管理の誤りに関係しています。オブジェクトがリリースされるのが早すぎる、必要なときに保持されないなど... ;-)

于 2012-04-19T08:39:36.020 に答える