強火で進め

このブログではプログラム関連の記事を中心に書いてます。

NSLog()の置き換え

NSLog()、デバック中は便利なんですがリリースするものに入れたままだとセキュリティと速度の両面から良くないです。

このような場合には #define で置き換えで対応するのですがこの置き換えについて丁寧な解説がしてあるブログを見つけたので紹介。

The Evolution of a Replacement for NSLog | iPhone Development Blog
http://iphoneincubator.com/blog/debugging/the-evolution-of-a-replacement-for-nslog

最終的にはこんな書き方になってます。

#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);

こんな記述ができるんですねぇ。Objective-CやC99は奥が深いです。

同じ様な事を扱った記事で日本語で読めるこちらの id:Psychs さんの記事もおすすめです。

iPhone デバッグ用のマクロ - Windchase
http://d.hatena.ne.jp/Psychs/20081120/1227203259