unrecognized selector sent to instance 0x…

エラーでXcodeでの実行が止まってしまいました。

どうやら存在しないオブジェクトに何か使用としている感じです。削除したにも関わらず、それを知らないでメソッドを使おうとしているようです。

よくよくみたら

  [[NSNotificationCenter defaultCenter] postNotification:n];

のところで例外が発生してました。

Thread 1: EXC_BAD_ACCESS (code=1, address=0x….)

ようするに
1. オブジェクトが通知センターに登録していた。
2. 役割が終わってオブジェクトを削除した。
3. 通知の登録は残ったままだから、通知を送ろうとしたら相手がくて例外が発生。
となってしまいました。

ということで、通知センターに登録した場合は、不要になったらきちんと登録を解除しましょう。

[[NSNotificationCenter defaultCenter] removeObserver:取り除くオブジェクト];

コメント