続Xcodeのデバッガを使ってます
iPhoneの前はFlashでゲームを作ったりしてました。
その時はデバッガ使わずに、変数を表示したりしてやってましたね。
デバッガで変数の中身を覗けるんですが、覗ける時と覗けない時があったりします。
ブレークポイントしかけても、汎用のメソッドに仕込むと、毎回止まって面倒。
このあたり、多分評価式とか書いて解決するのがスマートなのでしょうが、
そこまで到達していない初心者の私は、条件式書いてNSLogでコンソールに出力させたりして調べたりしてます。
デバッガ、ご存知の方もいらっしゃると思いますが、実はかなり複雑なシロモノのため、
デバッガが示す変数の値が絶対に正しいとは限らないそうです。
それもあってNSLogで表示させるという事もあります。ケースバイケースで使い分け。
デバッグ用のNSLog、リリースバージョンに残るのは面倒、と取り除くやり方はいろいろあるようですが、
私はこちらのやり方をしています。
NSLogの代わりをするマクロ
メソッド名なども表示するマクロ
プロジェクトを作ると、Debugビルドには、DEBUG というシンボルが定義されています。
これを利用するやり方。DEBUGがあったら、NSLogとして機能して、無ければ空白文にバケるマクロです。
// ------------------------------------------------------------------------------ // ■ LOG出力マクロ // ------------------------------------------------------------------------------ #ifdef DEBUG # define LOG(...) NSLog(__VA_ARGS__) # define LOG_CURRENT_METHOD NSLog(@"%@/%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else # define LOG(...) ; # define LOG_CURRENT_METHOD ; #endif
デバッガがどういうふうに実装されているかにご興味のある方は、こちらの書籍をお読み頂くと良いかと。