LoginSignup
12
13

More than 5 years have passed since last update.

print()やNSLogを書かずにconsoleにメッセージを出力する方法

Last updated at Posted at 2017-03-10

はじめに

 デバッグ時に変数の中身を確認するなどよくprint()NSLog()を使っていましたが、大量に書くことによってコードがぐちゃぐちゃになってしまったり、あとで消し忘れてしまうことがよくありました。

 どうやらBreakpointの設定によって起動したアプリを一時させることなく、表示したいものをconsoleに流し込める方法を知ったのでここに書きます。

手順

  1. Consoleにメッセージを出したいところの行にBreakpointを置きます。
  2. Breakpointにおいて右クリックし、Edit Breakpointを選びます。
    スクリーンショット 2017-03-10 17.52.06.png

  3. 次のように設定します。

    1. Actionの欄でLog Messageを選びます。
    2. text fieldに出力したい文字列を入力します。
    3. Log message to consoleを選択します。
    4. アプリをstopさせないためにAutomatically continue after evaluating actionsにチェックします。

スクリーンショット 2017-03-10 17.53.58.png

このような文字列が結果として表示されます。

スクリーンショット 2017-03-10 17.54.46.png

  • %BはBreakpointが置かれているメソッド
  • %HはそのBreakpointを通った回数

動的な値をLogに出力

しかし、この方法では、静的な値しか表示できません。
変数を表示したい場合などでは大変不便です。

そのような時は次のように設定します。
1. Actionの欄でDebugger Commandを選びます。
2. text fieldにexpressionキーワードを入れてからprint()NSLog()が後に続く形で書きます。
※右にある+をクリックすることで複数のアクションを追加可能です。
スクリーンショット 2017-03-10 18.18.10.png

結果はこうなります。
スクリーンショット 2017-03-10 18.24.56.png

動的な値が表示されていますね。

まとめ

今回の方法は逆に面倒くさく感じるといる方もいるかもしれません。
しかし、print()NSLog()の消し忘れやコードの見通しを考えると作業効率を上げてくれると考えられます。

まだまだXcodeには知らないでいると損する機能があって、Xcodeのポテンシャルを発揮できていないような気がします。
また何か発見できればシェアできればと思います。

12
13
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
13