天天看點

初學者:介紹NSLog的使用

原文: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位雙字