NSLog簡介
在Objective-C中,NSLog相當於C語言中的printf,常用於文字輸出。
NSLog的定義
NSLog定義在NSObjCRuntime.h中,如下所示:
void NSLog(NSString *format, …);
基本上,NSLog很像printf,同樣會在console中輸出顯示結果。不同的是,傳遞進去的格式化字元是NSString的對象,而不是char *這種字元串指針。
示例
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,%z | 無符整形 |
| %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位雙字 |
| %hhd | BOOL布爾類型 |

