xcode4.2でnszombieを有効にしました。(product-> editSchemeから)
私はこのメッセージを受け取りました:
-[buttons respondsToSelector:]: message sent to deallocated instance 0x48ae50
私はボタンクラスを持っていますが、このメッセージによる正確な問題がわかりません。
NSZombieからもっと多くを得ることができますか?
xcode4.2でnszombieを有効にしました。(product-> editSchemeから)
私はこのメッセージを受け取りました:
-[buttons respondsToSelector:]: message sent to deallocated instance 0x48ae50
私はボタンクラスを持っていますが、このメッセージによる正確な問題がわかりません。
NSZombieからもっと多くを得ることができますか?
問題は、タイプボタンのオブジェクトの割り当てが解除されてから、 respondsToSelector:メソッドが呼び出されたことです。そのオブジェクトはアドレス 0x48ae50 にあります。
NSZombies なしで実行していた場合、アプリケーションはクラッシュしていたでしょう。
この特定のメッセージが意味することは、buttons
インスタンス (で0x48ae50
) が割り当て解除された (別名release
d) ということです。したがって、respondsToSelector:
メッセージを送信しようとするとnothing
(インスタンスの割り当てが解除されたことを思い出してください)、エラーがスローされます。
トリガーされている場所の近くにブレークポイントを設定してみて、その理由を確認してください... (今のところ、buttons
オブジェクトのアドレスは のようになります0x0
)
ほとんどの場合 (すべてではないにしても)、これはメモリ管理の誤りに関係しています。オブジェクトがリリースされるのが早すぎる、必要なときに保持されないなど... ;-)