Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2009年09月27日

NSLogをデバッグ時のみ動作させる方法



実行中の変数の内容表示やトレース箇所の確認にNSLogは便利だが、リリース時は実行速度などの面から、NSLogの実行はデバッグのみ行うようにしたほうがよい。

但し、リリース時に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
posted by mobileDeveloper at 11:52 | Comment(0) | TrackBack(0) | デバッグ はてなブックマーク - NSLogをデバッグ時のみ動作させる方法 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。