【问题标题】:New line character showing up in NSLog output [duplicate]NSLog输出中出现换行符[重复]
【发布时间】:2012-12-08 19:43:38
【问题描述】:

我有以下方法:

- (NSString *)description {
    return [NSString stringWithFormat:@"Attribute %@: %@", name, [values description]];
}

Name 是一个字符串,values 是一个 NSArray。我有一个包含其中几个对象的 NSArray。

当我使用NSLog(@"Attribute created: %@", [newAttribute description]); 打印属性时,它工作正常,并打印:

2012-12-08 14:38:06.883 DT[25684:303] Attribute created: Attribute color: (
    YELLOW,
    PURPLE
)
2012-12-08 14:38:06.884 DT[25684:303] Attribute created: Attribute size: (
    LARGE,
    SMALL
)

但是,如果我创建一个 NSMutableArray 并在其中放置几个​​属性对象,当我以相同的方式打印数组时,我会得到这个输出:

2012-12-08 14:38:06.887 DT[25684:303] Attributes: (
    "Attribute color: (\n    YELLOW,\n    PURPLE\n)",
    "Attribute size: (\n    LARGE,\n    SMALL\n)",
)

为什么它在这种情况下打印换行符,我将如何阻止它这样做?

【问题讨论】:

  • 你找到解决办法了吗?
  • 还是没有解决办法?多么烦人

标签: objective-c nsarray nslog


【解决方案1】:

看起来这个问题在这里得到了回答:https://stackoverflow.com/a/5599699/5760384

基本上,就像 Exploring 所说,\n 字符在描述中不起作用,但由于某种原因,回车符起作用。因此,请尝试 \r 。我在 Xcode 7 中的重写描述方法中对此进行了测试,它工作正常。

【讨论】:

  • 建立声誉以将问题标记为重复。
  • 我会去信誉经纪人那里借一些,然后用它来标记为重复,然后赚取信誉然后偿还信誉经纪人:P
【解决方案2】:

这是因为当您使用方法“description”打印时,数据被转换为字符串,所以它不显示换行符。但是当您使用数组打印时,不会将其内容转换为字符串,因此它会显示换行符。

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 2014-10-22
    • 2015-01-08
    • 2016-05-15
    • 1970-01-01
    • 2012-03-26
    • 2015-11-14
    • 2016-08-25
    • 2023-03-17
    相关资源
    最近更新 更多