実際に開発を進めていくとアプリが意図したとおりに動かない場面にたびたび遭遇します。このような場合、原因を調査し修正するためのデバッグ作業を行う必要があります。ここでは、BMI計算アプリを例に、Xcodeのデバッガの使用方法について説明します。
例として、下記のようにBMIの計算式を間違えていることに気付かないまま、実装を進めてしまったとします。
// BMI = 体重(kg)÷ (身長(m) × 身長(m)) float bmi = weight / (weight * height); // ← 正しくはweight / (height * height);
この状態でアプリを実行し計算ボタンを押すと、下記のようにBMI計算結果がデタラメになってしまいます。
このようにプログラムが予期しない動作をした場合は、デバッガの出番です。デバッガを利用すると、プログラムを実行しながらバグの原因を探れます。
実行中のプログラムを途中で止め、変数の中身を確認するのがデバッガの基本的な使い方を説明します。今回は、executeCalcメソッド内の、変数に身長の値を格納する行で処理を中断することにしました。
プログラムを中断するブレークポイントを設定するには、中断したい行の行数の部分をクリックします。すると、下記のように行番号が青くなりブレークポイントが設定されます。
また、[グループとファイル]の一番下にある[ブレークポイント]を選択すると、画面上部にブレークポイントの一覧が表示されます。
ブレークポイントを有効にしてアプリを起動するには、[ビルド]→[ビルドとデバッグ]をクリックします(または、[command]+[Enter]キー)。
シミュレータが起動したら、計算ボタンを押して、設定したブレークポイントで処理が中断することを確認しましょう。
Xcodeのウィンドウ左上の[デバッガ]アイコンをクリックすると、デバッガウィンドウに切り替わります。デバッガウィンドウでは、指定したブレークポイントで処理が中断し、変数などの情報が表示されているのが分かります。
デバッガで処理中断中に[ステップオーバー]をクリックすると、中断していたプログラムを1行進めることができます(ショートカットキーは連載第1回の「いまさら聞けないiPhone/iPadアプリの作り方の基礎」を参照してください)。
ステップオーバーを2回行ってプログラムを進めたところ、変数heightとweightの値は正しく設定されているが、BMI計算後に予期しない値が変数bmiに設定されていることが分かりました。これで、BMI計算の行に誤りがあると気付くことができます。
以上が、基本的なデバッガの使い方です。
Xcodeは、ほかにもデバッグを助ける強力な機能をいくつか持っています。以下に、その一部を紹介します。
デバッグは複雑なアプリケーションを開発する際には必須の作業です。Xcodeの機能を生かして、効率的なデバッグを目指しましょう。
Copyright © ITmedia, Inc. All Rights Reserved.