LoginSignup
31
12

More than 1 year has passed since last update.

【Xcode・Swift・SwiftUI】あるコードを通過したときに音を鳴らす

Last updated at Posted at 2022-03-17

本記事を1枚の画像で表すと

スクリーンショット 2022-03-17 23.08.20.png

print デバッグ

Xcode でコーディングをしてそれをデバッグする際、例えば条件分岐をする際にどちらの分岐に入ったかを調べるために、 print(_:separator:terminator:) を使ったりします。そしてコンソールの出力を見て、どちらの分岐に入ったかを確かめることができます。

しかし、もしコンソールに大量の出力が流れるとすれば、コンソール内で検索やフィルタをかけなければ出力を追いかけるのは困難でしょう。

スクリーンショット 2022-03-17 22.53.12.png

Breakpoint デバッグ

また、Breakpoint を作成し、一旦動作を止めてあげることでどちらの分岐に入ったかを確かめることもできます。Breakpoint を作成する方法はいくつかあります。

  • Breakpoint を作成したい箇所の行番号をクリックする
  • Breakpoint を作成したい箇所にキャレット(テキストカーソル)を移動させ、Cmd + \(JIS キーボードの場合は Cmd + Option + ¥ など)を押す
  • Breakpoint を作成したい箇所にキャレット(テキストカーソル)を移動させ、「Debug」>「Breakpoints」>「Create Breakpoint at Current Line」をクリックする

この方法では実行を一旦停止することとなり、様々な処理を同時に走らせている場合には、この停止を解除した後、不都合が起きる可能性も考えられます。

スクリーンショット 2022-03-17 23.00.55.png

(一度作成した Breakpoint を削除するには、青い行番号を副ボタンクリック(右クリック)して「Delete Breakpoint」をクリックする方法や、キャレット(テキストカーソル)を移動させ、Cmd + \(JIS キーボードの場合は Cmd + Option + ¥ など)を押すなどの方法があります。)

Breakpoint に来ても実行を自動的に続ける

Breakpoint に処理が到達しても、実行を続ける方法があります。青で示された行番号をダブルクリックすると吹き出しが出てきます。
この「Options」にある「Automatically continue after evaluating actions(アクションの評価後、自動的に続行する)」にチェックマークを入れると、その Breakpoint に到達しても実行が自動で継続します。

スクリーンショット 2022-03-17 23.04.56.png

Breakpoint に来たら音を鳴らす

スクリーンショット 2022-03-17 23.08.20.png

「Automatically continue after evaluating actions」するのはいいのですが、このままでは Breakpoint を作成した意味があまりありません。では、「Action」にある「Add Action」ボタンをクリックし、選択肢の中の「Sound」にチェックを入れましょう。

名称未設定.gif

(GIF のため音はありません。右上の出力音量レベルを見てみてください。)すると、Breakpoint のあるコードを通過したときに、Mac から音がなるようになります。

もちろん、比較的最近の Xcode でできるようになった「Column Breakpoint」でも同じように音を鳴らすことができます。

スクリーンショット 2022-03-17 23.16.27.png

Breakpoint に条件を指定する

これはおまけです。Breakpoint には「Condition」で条件を指定することもできます。例えば、以下のスクリーンショットの場合、Button の action が実行されるごとに count がインクリメントされていきますが、その count が2の倍数のときだけ音がなるように、「Condition」に

count.isMultiple(of: 2)
// count % 2 == 0 と同じですが、こちらのほうがより「2の倍数」であることが自然言語的に読み取りやすいでしょう

が入っています。

スクリーンショット 2022-03-17 23.20.55.png

31
12
0

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
31
12