原文:http://www.cocoachina.com/index.php/archives/cocoachina_216.html
可能你曾經有過Windows程式設計的經驗,通常在你調試程式的時候,如果希望看到某個中間結果,你會習慣使用MessageBox來顯示中間的結果。
有了Cocoa的NSLog,你在寫Cocoa程式的時候,就可以無需每次都調用NSAlert來觀察中間結果了。
NSLog的定義
NSLog定義在NSObjCRuntime.h中,如下所示:
void NSLog(NSString *format, …);
基本上,NSLog很像printf,同樣會在console中輸出顯示結果。不同的是,傳遞進去的格式化字元是NSString的對象,而不是chat *這種字元串指針。
示例
NSLog可以如下面的方法使用:
NSLog (@"this is a test");
NSLog (@"string is :%@", string);
NSLog (@"x=%d, y=%d", 10, 20);
但是下面的寫法是不行的:
int i = 12345;
NSLog( @"%@", i );
原因是, %@需要顯示對象,而int i明顯不是一個對象,要想正确顯示,要寫成:
int i = 12345;
NSLog( @"%d", i );
格式
NSLog的格式如下所示:
- %@ 對象
- %d, %i 整數
- %u 無符整形
- %f 浮點/雙字
- %x, %X 二進制整數
- %o 八進制整數
- %zu size_t
- %p 指針
- %e 浮點/雙字 (科學計算)
- %g 浮點/雙字
- %s C 字元串
- %.*s Pascal字元串
- %c 字元
- %C unichar
- %lld 64位長整數(long long)
- %llu 無符64位長整數
- %Lf 64位雙字