はじめに
デバッグ時に変数の中身を確認するなどよくprint()
やNSLog()
を使っていましたが、大量に書くことによってコードがぐちゃぐちゃになってしまったり、あとで消し忘れてしまうことがよくありました。
どうやらBreakpointの設定によって起動したアプリを一時させることなく、表示したいものをconsoleに流し込める方法を知ったのでここに書きます。
手順
- Consoleにメッセージを出したいところの行にBreakpointを置きます。
-
次のように設定します。
- Actionの欄でLog Messageを選びます。
- text fieldに出力したい文字列を入力します。
- Log message to consoleを選択します。
- アプリをstopさせないためにAutomatically continue after evaluating actionsにチェックします。
このような文字列が結果として表示されます。
- %BはBreakpointが置かれているメソッド
- %HはそのBreakpointを通った回数
動的な値をLogに出力
しかし、この方法では、静的な値しか表示できません。
変数を表示したい場合などでは大変不便です。
そのような時は次のように設定します。
1. Actionの欄でDebugger Commandを選びます。
2. text fieldにexpression
キーワードを入れてからprint()
やNSLog()
が後に続く形で書きます。
※右にある+をクリックすることで複数のアクションを追加可能です。
動的な値が表示されていますね。
まとめ
今回の方法は逆に面倒くさく感じるといる方もいるかもしれません。
しかし、print()
、NSLog()
の消し忘れやコードの見通しを考えると作業効率を上げてくれると考えられます。
まだまだXcodeには知らないでいると損する機能があって、Xcodeのポテンシャルを発揮できていないような気がします。
また何か発見できればシェアできればと思います。