NSLogメモ

CocoaのFoundationフレームワークで使うNSLog()のメモ。

printfとほとんど同じ使い方。

NSLog(@"hogehoge %d %f %@", intNum, floatNum, anObject);

行頭に日付時刻とプロセス名が、行末に\nが、自動的に付加されます。%〜の意味は以下の表の通り。(Hillegass本第3版より)

記号 表示する型
%@ id
%d, %D, %i long
%u, %U unsigned long
%hi short
%hu unsigned short
%qi long long
%qu unsigned long long
%x, %X unsigned long (16進数で表示)
%o, %O unsigned long (8進数で表示)
%f, %e, %E, %g, %G double
%c unsigned char (ASCII文字)
%C unsigned char (Unicode文字)
%s char * (終端NULLのASCII文字によるC文字列)
%S unichar * (終端NULLのUnicode文字によるC文字列)
%p void * (先頭0xの16進数で表示されるアドレス)
%% %そのもの

NSLogの引数として渡している文字列は@"〜"の形式になっていますが、これはNSString型の文字列であることを表しています。単に"〜"だとC文字列 (すなわちchar *型)。C文字列からNSString文字列への相互変換は以下の通り。

const char *cstr = "hoge";
NSString *nsstr;
nsstr = [NSString stringWithUTF8String:cstr];
cstr = [nsstr UTF8String];