NSlog 不打印新行 \r\n

2024-05-07

我尝试添加新行NSlog.

I run:

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

[Edit 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, @"`");

Mac 上从来不需要回车/换行对 (CR+LF)。经典 MacOS 使用 CR,MacOS X 使用 LF(由于其 Unix 传统)。所以这并不奇怪NSLog()从您正在记录的文本中删除 CR 字符。

这也不足为奇NSLog()修剪日志语句末尾的空白。NSLog()是为了logging消息——它不是通用的print陈述。保持日志紧凑很有用,从消息末尾修剪空白行就可以达到这个目的。

如果您确实想在消息中包含空格,也许为了使某些日志消息更加突出,您可以通过在空行后包含一个打印字符来实现。例如:

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

结果:

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

My Really Important Message

.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSlog 不打印新行 \r\n 的相关文章

随机推荐