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];