新しいプログラマーとして、私は の魔法を発見しNSlog
、コード全体でそれを使用しています。NSZombieEnabled
これは、デバッグに (とともに) 非常に役立ちました。
シミュレーターがこれらすべてのものを出力するので、確実なパフォーマンス ヒットが見られます。デバイスでそのようなヒットは見られないと思いますが、よくわかりません。
それで、すべてを残すのに何か費用がかかりNSLogs
ますか?デバイスでより多くのメモリを使用していますか? それとも、デバイス用にコンパイルするときのコメントのように、コンパイラはそれらを無視しますか?
編集:
からの提案に従って、これが私が実装したものですrano.
私のApp_Prefix.pch
ファイルに、次を追加しました。
// DLog is almost a drop-in replacement for NSLog
// DLog();
// DLog(@"here");
// DLog(@"value: %d", x);
// Unfortunately this doesn't work DLog(aStringVariable); you have to do this instead DLog(@"%@", aStringVariable);
#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__);
そして、私のProject Info
インスペクターで、Debug
構成のために、見出しの下に、という名前の一番上のエントリGCC 4.2 - Preprocessing,
に値を追加しましたDEBUG
Preprocessor Macros.
魅力のように機能します-バージョンDLog
をビルドすると常に出力されます。Debug
ALog