LoginSignup
2
7

More than 5 years have passed since last update.

iOSアプリのデバッグ方法まとめ

Posted at

とりあえずprintしてみる

基本ですね。

print(anyVariant) //変数の中身が見たいとき
print(type(of: anyVariant)) //変数の型が知りたい

中身が見たいときでなくても、そのロジック通ってるか見たいときにも使えます。
原始的なデバッグ法です。
あまりお行儀はよくない扱いみたいで、次に紹介するブレイクポイントを仕込むほうがまっとうなやり方でしょう。

ブレイクポイントを仕込む

Xcodeの機能で、ブレイクポイントというものがあります。
使い方は簡単です。
image.png
↑この例では、15行目にブレイクポイントを仕込んでいます。
行番号をクリックすると、その行にブレイクポイントが設定されます。
画像だと15行の番号が青くなってますね。

作成したプログラム動かすと、そのブレイクポイントに来たときに実行が一時停止して、
その時点の変数についての情報が見れます。

便利なんですが、アプリの動作を一度止めてしまうのは、利点でもあり、欠点でもあります。
たとえば電卓アプリをつくっていて、シミュレータで各ボタンを押したときの変数の状態を見たいときに、
ボタン1つ押すたびに動作が止まってしまうと、いちいち解除してやらないといけないので、めんどくさいです。

sleepを入れたい

デバッグ方法とはちょっと逸れるかもしれませんが、sleep入れたいときないですか?
そういうときはこれで止まります。

処理がx秒止まる
Thread.sleep(forTimeInterval: 3.00) //3秒Wait

ただこのThreadのsleepを使うと、プログラムの処理が全停止します。
たとえばサーバから重いデータをダウンロードするときに、
一旦sleepで待たせて、ダウンロードを完了させて、後続処理につなぎたい、
という風なときは、sleep中はダウンロード処理も止まるので、その用途には使えません。
そんなときは下記で止めるといけました。

x秒止まる(実行中の処理は動作)
RunLoop.current.run(until: Date.init(timeIntervalSinceNow: 3.0))
2
7
2

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
2
7