デバッグで必要なNSLogをマスターする

デバッグとは

プログラミングの世界で簡単に表現すると、
プログラムのバグを発見し、修正する作業です。

大抵一発で思い通りに動くことはありません。
例えば、ゲームアプリを完成させても何度が遊んでいると不都合が見つかったりします。

そのとき、何が原因でバグが起きたのか、
検証していき、修正する作業、これが『デバッグ』です。

NSLogによるデバッグ

NSLogとは、コンソールにログを出力することができます。
例えば、『NSLog(@”テスト”);』を実行すると、こんな感じです。
コンソール

エラーが起こると基本的にエラーが起こった場所でプログラムの実行がストップします。

プログラムは1つのメドッド内で上から順番に実行されていくので、
極論一行一行全てにNSLogによる出力テストを行ってあげれば、
プログラムのどこでエラーが発生したのか突き止めることができるのです。

例えば、下のプログラムを実行したときに、コンソールに「テストA」しか表示されなければ、プログラムXに問題点があると特定できます。もしくは、何も表示されなければ、これよりももっと前の部分にエラーがあると推測できます。

NSLog(@"テストA");

プログラムX

NSLog(@"テストB");

他にも、条件文でどこが実行されたか調べたいときにも使えます。

if(条件式){
    NSLog(@"テストA");
}else{
    NSLog(@"テストB");
}

forなどの繰り返し文でbreakがある場合、
どのタイミングでブレークしたか調べるときにも有効です。

このように、NSLogは検証する上でとても大切なのです。

NSLogの使い方

NSLog(@"テスト");

これが基本的です。テストの部分に、自由に文字列を設定します。

 

変数の代入

また、変数を代入することもできます。

int x = 3;
NSLog(@"xの数字は%dです", x);

とすると、%dにxが代入され、『xの数字は3です』とコンソールに出力します。
log02

このように、”"の中には%dのように書き、あとで代入する変数を,の後に書き足します。

 

2つ以上の変数の代入

2つ以上の代入の際には、,で区切って2つの変数を並べます。

int x = 3;
int y = 5;
NSLog(@"xの数字は%dで、yの数字は%dです", x,y);

log03

 

フォーマット演算子の種類

代入する変数の型によって書き方が変わります。
このような%◯のような演算子をフォーマット指定子と呼びます。

%d 整数の置換 int x = 3;
NSLog(@”xの数字は%dです”, x);
%f 少数の置換 float x = 3.7;
NSLog(@”xの数字は%fです”, x);
%@ 文字列の置換 NSString *str = @”テスト”;
NSLog(@”strは%@を表します”, str);

コメントを残す

サブコンテンツ

このページの先頭へ