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