デバッグするときNSLogをよく使いますが、普通にNSLogを挿入してしまうとON/OFFがしにくい(Debugビルドのみ表示させたい)ので、普段は下記のように定義をきって制御しています。
#ifdef DEBUG_LOG
#define DLog(format, ...) NSLog([NSString stringWithFormat:@"[%@] %@", NSStringFromClass([self class]), format], ## __VA_ARGS__, nil)
#else
#define DLog(format, ...)
#endif
使い方はNSLogと同じですが、先頭に実行したクラスの関数名が表示されるようにしています。
これをプロジェクトの設定で、Debug構成のときだけプリプロセッサマクロに定義したDEBUG_LOGを追加すれば、Debugビルドのときだけ有効になって表示されます(間違って全構成で設定しないように...)。
関数だけを表示するものとか、機能ごとに定義を分けたりとか、いろいろ工夫するとより便利になります。
ちなみに、DLogの最後のnilを忘れると下記のwarningがでることがあります。
warning: format not a string literal and no format arguments
No comments:
Post a Comment