我有以下方法:
- (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)",
)
为什么在此上下文中打印换行符,我将如何阻止它?
答案 0 :(得分:1)
这个问题在这里得到了解答:https://stackoverflow.com/a/5599699/5760384
基本上,就像探索说的那样,\ n字符在描述中不起作用,但由于某种原因,回车会起作用。所以请尝试\ r \ n。我在Xcode 7中用一个重写的描述方法测试了它,它工作正常。
答案 1 :(得分:0)
这是因为当您使用方法“description”进行打印时,数据将转换为字符串,因此不会显示换行符。但是当你使用数组打印时,它的内容不会转换为字符串,因此它显示换行符。