シンボリック・ブレークポイント

Unrecognized Selectorのようにどこのメソッドが実行された際に発生したか判り難いエラーの場合、以下のシンボリック・ブレークポイントを作ってやることで、直接的にどこでエラーが発生したかが分かり易くなる。

-[NSObject doesNotRecognizeSelector:]

NSObject-doesNotRecognizeSelector:メソッドはランタイムにレシーバであるオブジェクトが応答出来ないメッセージを受信した時にこのメソッドを呼び出すので、このシンボルに対してブレークポイントを設定することで同エラーを検出できる訳だ。。

追加の仕方は、ブレークポイントナビゲータ(cmd + 6)の左下の+ボタンから"Add Symbolic Breakpoint"を選択して、その後ダイアログにシンボルを入力すれば良い。(ライブラリィやブレークした場合のアクションも指定できるが、割愛する)

こんな感じで登録され、シンボルを検出すると実行はブレークする。