2017-03-29 41 views
1

我尝试将新行添加到NSlogNSlog不会打印新行 r n

我运行:

NSLog(@"\n%@\r\n\r\n", json1); 
NSLog(@"\n%@\r\n\r\n", json2); 

但是输出是:

2017-03-29 16:09:50 InAppTestAfApp2[312:33527] 
{"attribution":"true"} 
2017-03-29 16:09:50 InAppTestAfApp2[312:33527] 
{"attribution":"false"} 

它忽略新线\r\n(也试过\n只),但字符串前一日\n工作

我期待:

2017-03-29 16:09:50 InAppTestAfApp2[312:33527] 
{"attribution":"true"} 


2017-03-29 16:09:50 InAppTestAfApp2[312:33527] 
{"attribution":"false"} 


017-03-29 16:09:50 InAppTestAfApp2[312:33527] other logs ... 

我使用的Xcode 8.3

[编辑1]

我试图运行:

NSLog(@"%@ %@",type, @"xxxxx\n\n"); 

不过我看到:

2017-03-29 16:09:50 InAppTestAfApp2[312:33527] 
xxxxx 
017-03-29 16:09:50 InAppTestAfApp2[312:33527] other logs ... 

[EDIT 2]

由于工作围绕我在末尾添加垃圾,但它看起来凌乱:

NSLog(@"%@ %@\r\n\r\n%s",type, json, @"`"); 

回答

4

回车/换行符对(CR + LF)从来没有需要在Mac上。经典MacOS使用CR,MacOS X使用LF(由于其Unix传统)。因此,NSLog()将CR字符从您正在记录的文本中剥离并不奇怪。

NSLog()从日志语句末尾修剪空白区也不足为奇。 NSLog()是为了日志记录消息 - 它不是一个通用的print声明。保持日志紧凑是有用的,从消息尾部删除空行符合这一目的。

如果你真的想在你的消息中包含空格,也许为了让某些日志消息更加突出,可以在空白行后面加上一个打印字符。例如:

NSLog(@"\n\nMy Really Important Message\n\n."); 

其结果是:

2017-03-29 09:28:12.898 MessageTest[13407:2524935] 

My Really Important Message 

.