メソッド名と行番号を出力し、条件付きで NSLog を無効にするにはどうすればよいでしょうか? 質問する

メソッド名と行番号を出力し、条件付きで NSLog を無効にするにはどうすればよいでしょうか? 質問する

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

おすすめ記事