但し、リリース時にNSLogをコメントアウトするのは手間がかかる。
そこで、デバッグ実行時のみ、NSLogを実行するようにする方法がある。
1. デバッグ用マクロを定義する。
Global.h
#ifdef DEBUG
# define LOG(...) NSLog(__VA_ARGS__)
# define LOG_METHOD NSLog(@"%s", __func__)
#else
# define LOG(...) ;
# define LOG_METHOD ;
#endif
2. プロジェクトの設定で、「GCC_PREPROCESSOR_DEFINITIONS」を追加する。
「プロジェクトの設定」→「ビルド」→「Debug」構成→「ユーザ定義カテゴリ」
・「GCC_PREPROCESSOR_DEFINITIONS」に「DEBUG」を追加。
Mac OS X Snow Leopard版 Xcode3.2の場合は、
「プロジェクトの設定」→「ビルド」→「Debug」構成→「GCC4.2 - プリプロセス」
・「プリプロセッサマクロ」に「DEBUG」を追加。
3. 上記1で定義したヘッダファイルを、NSLogを実行するコードのファイルでインポートする。
foo.m
#import "Global.h"
4. 既存のNSLogを、LOGに置き換える。
(例)
変更前:NSLog(@”hogehoge”);
変更後:LOG(@”hogehoge”);
変更前:NSLog(@"hogehoge=%@", obj);
変更後:LOG(@"hogehoge=%@", obj);
参考記事:
http://d.hatena.ne.jp/nakamura001/20090412/1239533980
http://d.hatena.ne.jp/Psychs/20081120/1227203259
タグ:iPhone
【デバッグの最新記事】