Objective c NSLog输出中显示的新行字符
我有以下方法:Objective c NSLog输出中显示的新行字符,objective-c,nsarray,nslog,Objective C,Nsarray,Nslog,我有以下方法: - (NSString *)description { return [NSString stringWithFormat:@"Attribute %@: %@", name, [values description]]; } 名称是字符串,值是NSArray。我有一个NSArray,里面有几个这样的东西 当我使用NSLog(@“attribute created:%@,[newAttribute description])打印属性时工作正常,并打印以下内容: 2012
- (NSString *)description {
return [NSString stringWithFormat:@"Attribute %@: %@", name, [values description]];
}
名称是字符串,值是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)",
)
在这种情况下,它为什么要打印换行符?我如何防止它这样做?这是因为当您使用方法“description”打印时,数据会转换为字符串,因此它不会显示换行符。但是,当您使用数组打印时,数组的内容不会转换为字符串,因此它会显示换行符。这里似乎回答了这个问题:
基本上,如上文所述,字符\n在描述中不起作用,但出于某种原因,回车符起作用。因此,请尝试\r。我在Xcode 7中的重写描述方法中对此进行了测试,效果很好。找到解决方案了吗?还是没有解决方案?把一个问题标记为重复问题是多么烦人啊。我会去声誉经纪人那里借一些,然后用它来标记为重复问题,然后赢得声誉,然后偿还声誉经纪人:P