XcodeによるSwiftプログラミング中級講座

ブレークポイントによるデバッグ

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
println()関数を使ったデバッグの替わりに、ブレークポイントを使ってデバッグする方法を解説します。
講師:
08:11

字幕

このレッスンでは println 関数の替わりにブレークポイントを使ってデバッグする方法を紹介します。まずこちらのシミュレータの画面を見ていただきますと本来 6 種類の画像が表示されるはずなのに5 種類しか表示されていない、とこういう形になっています。これをデバッグするためにですね、本当にこれがちゃんと表示されているのか、ということを上から確認するために現在、上から println のこの関数をこうやって挿入して本当に 1 個 1 個の行でちゃんとこの photos のデータが追加されているのか、ということを確認しています。ですが、このように println 関数を使って新しいですね、プログラムをコードの中に埋め込んでしまうことによって実際に AppStore で公開する時とはちょっと異なる、なんて言うんですかね、機械語の中身になってしまっている、ということがここでは問題となってきます。この println 関数、というのはですね、println 関数を入れたことによって上手く動いてしまうケースというのが時々あります。本来であればですね、このようにデバッグのための情報というのをこういうところに入れるべきではないんですね。 入れずに、もう本番環境と同じままでどこに問題があるか、ということを切り分けることができれば一番良い訳です。では、どうすれば良いかと言いますと、ここで登場するのがブレークポイントを使ったデバッグという手法です。では実際にブレークポイントを使ってみましょう。ブレークポイントを使うのは非常に簡単でまず、自分がプログラムの動作を確認したいな、と思うところを見つけます。今回はこの辺りですね。photo を追加している辺り。で、そのプログラムの動作を見たいなと思う一番先頭のところにこの行番号があるところにですね、行番号が書かれている辺りをクリックします。するとこの、ブレークポイントということを表す、青いこのマークが現れます。こうしてブレークポイントを設定したことによって、シミュレータをもう一回実行し直すと、このブレークポイントで実行が中断されます。実際にやってみましょう。この実行ボタンを押して、ブレークポイントがアプリケーションの起動時に呼ばれます。今呼ばれました。これ、エラーで止まっている訳ではなくて、このブレークポイントを設定したことによって止まっています。実際にこの時に photos のこのデータがですね、どのようになっているか、ということをここで見ていくことができます。 このデバッグ画面のこの下の画面ですね、この下の画面は、この右側にあるこのスイッチのところこのボタンを押すことで、こうやって開いたり閉じたりすることができるんですが、このボタンでこれを表示した後に今このセルフというのが現在このphotosTableViewController になっています。このセルフの中の photos の配列、というのが今どうなっているかというのを見ると、今 0 values と書いてあるので配列の中に何も情報がない、という状態ですね。これを 1 つ 1 つ実行していきます。下の方にここにですね、実行を、これが再開するボタンです。それからステップ実行と言って、1 行ずつ実行していくボタンがここにあります。この 1 行ずつ実行していくこのステップオーバーのこのボタンですね、これを押して 1 行実行します。更に 1 行実行します。そうするとこの photos.appendというプログラムが今実行されましたので、この photos の配列の中にこの photo がですね、1 つ入って1 つ値が追加されて 1 value になったことが分かります。今回はこの後ろのですね、チェスの画像が追加されるはずなのにちょっとコメントアウトされてしまっている、という状態にしているんですが、ここで、更にこの photo を追加しているところですぐに次に行ってしまっていることからも分かりますけど、本来ここで 2 values になるはずなのにまだ 1 value のままになってしまっている、ということであれ、おかしいな、ということを見ることができます。 これ、いろんな見方があって、ここで見ることもできますし、上の方のですね、この photos と書かれているこの配列のところにマウスを持っていってしばらく置いておくと、えっと出ますかね、しばらくこれをクリックして、ちょっと photos の方は難しそうなのでこっちにしましょう。newPhoto、1 行実行してみます。こちらの newPhoto のところにこうやってカーソルを合わせると、このように newPhoto の内容が出てきます。newPhoto の中ですね、どうなっているか、というのをこうやって三角マークを開いてやるとこう、中に name があって、filename があって、notes がありますよ、とこのようにちゃんと出てきます。勿論、UIImage もデータがここにセットされている時には、それを表示することも、このクイックルックって言うんですけどね、これを使って表示することもできるようになっています。では実際にその画像が見れる例をちょっと見ておきたいと思います。ちょっとブレークポイントを今消しましたけどブレークポイントはこのように、要らなくなったらこの青いマークをですね、ドラッグ & ドロップでこの行番号のエリアの外に出してやることによって、消せます。 そして、実際に画像を読み込んでいるのはdisplayViewControllerの中にそのコードがあるのでちょっとこちらを使ってですね、実際に画像を見る例をやってみましょう。今ここに UIImage というのを使って画像を読み込んでいます。その UIImage の画像をこちらに表示しています。これをですね、もう一度ここにブレークポイントを当てて表示してみたいと思います。で、何か画像を 1 個読み込みます。そうするとここにブレークポイント来ました。で、1 行実行して、もう 1 行実行した辺りでこの Image がどうなっているかな、ということをカーソルを当てて見てみます。ただ、これですね、ちょっと現在のSwift のバグだと思うんですが、ここのクイックルックはですね、実は今効かなくなっています。バージョン 6.4 ですけど、Xcode バージョン 6.4 で効かなくなっています。これ、なんでかと言うと、この Imageというのは読み込めるかどうか分からないのでオプショナル変数になっているんですね。で、オプショナル変数になっているものをそのまま読み込めない、という問題が実はありまして、こういうのをやる時にはちょっとコードを追加する形になってしまうんですが、もしここで値を確認したい時には、例えばこう Image2 みたいなものを用意して、Image が ! でちゃんと読み込めた場合、という形でオプショナル変数であることをこう外してですね、実行してやると、中身が確認できるようになります。 ここはちょっと将来に期待といったところですが、これで Blue Sky 読み込みました。で、ステップ実行していきます。ステップ実行して、ステップ実行して、今 Image 2 にはオプショナル変数ではない画像が入っていますので、これでこのようにクイックルックのボタンをですね、押すと、読み込んだ画像が表示されるようになっていることが分かります。ということで、この左下のですね、場所では本当にどんなオブジェクトに対してでも現在の情報というのを確認することができますので、ぜひこのブレークポイントを活用して自分のアプリケーションのデバッグを行っていってください。尚、このアプリケーションですね、ブレークポイントで止めたところからもう一度実行を再開したいな、という時にはこの実行再開のボタンを押してやることによってブレークポイントを気にせずに実行を再開することができます。このレッスンではprintln 関数ではなくブレークポイントを使ってデバッグを行う方法を解説しました。

XcodeによるSwiftプログラミング中級講座

このコースではSwiftのプログラミングに慣れてきた方を対象に、より効率的にXcodeを使い、プロジェクトを管理するためのさまざまなテクニックを紹介します。各レッスンではブレークポイントやプロファイラを使った便利なデバッグ方法や、条件に応じてコンパイル対象のコードを書き分けるやり方など実際のアプリ開発で使える実践的なテクニックを解説します。

3時間01分 (27 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年10月29日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。