デバッグ時のみ有効となるようにNSLogをマクロ化して使う
デバッグ時にNSLogを使って動作確認するが、本番モジュールでは無効化したい。
そのため、マクロを用いて別関数名で定義する。
//ヘッダーimport文の下あたりに定義 #if DEBUG #define MyLog(fmt,...) NSLog((fmt),(__VA_ARGS__)) #else #define MyLog(fmt,...) #endif
上記の場合、
int a = 10; MyLog(@"a=%d",a);
のように何かしら引数が1つは必要となる。
この場合
MyLog(@"test");
といった単純に引数を伴わない出力ができない。そのような場合は以下とする。
//ヘッダーimport文の下あたりに定義 #if DEBUG #define MyLog(...) NSLog(__VA_ARGS__) #else #define MyLog(...) #endif
これで出力されるようになる。
追記
*-Prefix.pchという場所に書くとどのソースからでも参照できるので便利だそうな。
NSLog デバッグ用の各種ログマクロまとめ