Xcode でのデバッグに関するプレゼンテーションを行っており、NSLog を効率的に使用するための詳細情報を入手したいと考えています。
特に、2つの質問があります。
- 現在のメソッドの名前/行番号を簡単に NSLog する方法はありますか?
- リリース コードをコンパイルする前に、すべての NSLog を簡単に「無効にする」方法はありますか?
ベストアンサー1
私がよく使用する NSLog 関連の便利なマクロをいくつか紹介します。
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
# define DLog(...)
#endif
// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
DLog マクロは、DEBUG 変数が設定されている場合にのみ出力するために使用されます (デバッグ構成のプロジェクトの C フラグに -DDEBUG が指定されています)。
ALog は常にテキストを出力します (通常の NSLog と同様)。
出力 (例: ALog(@"Hello world") ) は次のようになります。
-[LibraryController awakeFromNib] [Line 364] Hello world