ios - NSlog 不打印新行\r\n

标签 ios objective-c

我尝试向 NSlog 添加新行。

我跑:

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 ...

[编辑2]

作为解决办法,我在最后添加了垃圾,但看起来很乱:

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

最佳答案

Mac 上从来不需要回车/换行对 (CR+LF)。经典 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

.

关于ios - NSlog 不打印新行\r\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43094610/

相关文章:

ios - 如何将项目排列成表格 View 中的部分?

php - 使用 xcode 8 (Objective-c) 将 Textfield 值发送到 PHP MySQL,有或没有点击操作?

iphone - 区分动态生成的按钮

java - 用另一种语言包装 C++ 对象的策略——内存管理

iphone - 如何在 iphone 中获取录制音频的时间?

ios - swift : Change Tableview Width to 1/2 its size

php - 从网络应用程序动态更新 ios apple-touch-icon

ios - CCSprite 在边框周围有奇怪的白色像素

ios - 如何在 Swift 的泛型中声明基类?

ios - Objective-c 负十六进制值