NSLog vs printf
NSLog(@"NSLog message");
printf("printf message\n");
輸出:
2016-07-16 08:58:04.681 test[46259:1244773] NSLog message
printf message
除日誌訊息外,NSLog
還輸出日期,時間,程序名稱,程序 ID 和執行緒 ID。printf
只輸出訊息。
NSLog
需要一個 NSString
並在結尾處自動新增換行符。printf
需要一個 C 字串,不會自動新增換行符。
NSLog
向 stderr
傳送輸出,printf
向 stdout
傳送輸出。
printf
和 NSLog
中的一些 format-specifiers
是不同的。例如,當包含巢狀字串時,會產生以下差異:
NSLog(@"My string: %@", (NSString *)myString);
printf("My string: %s", [(NSString *)myString UTF8String]);