在NSLog输出中显示的新行字符

时间:2012-12-08 19:43:39

标签: objective-c nsarray nslog

我有以下方法:

- (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)",
)

为什么在此上下文中打印换行符,我将如何阻止它?

2 个答案:

答案 0 :(得分:1)

这个问题在这里得到了解答:https://stackoverflow.com/a/5599699/5760384

基本上,就像探索说的那样,\ n字符在描述中不起作用,但由于某种原因,回车会起作用。所以请尝试\ r \ n。我在Xcode 7中用一个重写的描述方法测试了它,它工作正常。

答案 1 :(得分:0)

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