Objective-Cのログ処理
NSLogメソッド
ログを印刷するために、HelloWorldの例から直接使用したObjective-Cプログラミング言語のNSLogメソッドを使用します。
「HelloWorld」という単語を出力する簡単なコードを見てみましょう-
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Hello, World! \n");
return 0;
}
これで、プログラムをコンパイルして実行すると、次の結果が得られます。
2013-09-16 00:32:50.888 demo[16669] Hello, World!
ライブアプリのログを無効にする
アプリケーションで使用するNSLogは、デバイスのログに出力されるため、ライブビルドでログを印刷するのは適切ではありません。したがって、ログの印刷には型定義を使用し、以下に示すように使用できます。
#import <Foundation/Foundation.h>
#if DEBUG == 0
#define DebugLog(...)
#elif DEBUG == 1
#define DebugLog(...) NSLog(__VA_ARGS__)
#endif
int main() {
DebugLog(@"Debug log, our custom addition gets \
printed during debug only" );
NSLog(@"NSLog gets printed always" );
return 0;
}
ここで、プログラムをコンパイルしてデバッグモードで実行すると、次の結果が得られます。
2013-09-11 02:47:07.723 demo[618] Debug log, our custom addition gets printed during debug only
2013-09-11 02:47:07.723 demo[618] NSLog gets printed always
ここで、プログラムをコンパイルしてリリースモードで実行すると、次の結果が得られます。
2013-09-11 02:47:45.248 demo[3158] NSLog gets printed always