从PList返回的“NSString”中的换行符不起作用

时间:2010-03-18 03:18:24

标签: objective-c iphone nsstring plist

我看过这篇文章:NSString: newline escape in plist但我想知道是否有办法实用地渲染\ n换行符。

我目前正在使用:

decisionText.text = [NSString stringWithFormat: (@"%@", [replies objectAtIndex:(arc4random() % [replies count])])];

replies数组中随机抓取一个字符串。数组是从plist中加载的,如下所示:

replies = [[NSMutableArray alloc] initWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"AdviceList" ofType:@"plist"]];

我错过了什么?答案不能是手动输入换行符。那不是编程! (听起来像是对我的文字处理。)

2 个答案:

答案 0 :(得分:2)

Moshe:你想做什么?如果您尝试将文本渲染为UILabel,则必须设置行数(setNumberOfLines:0表示无限制)。然后设置文本(-[UILabel setText:])并告诉标签调整自身大小(-[UILabel sizeToFit])。现在标签会正确地破坏线条以适应空间。

祝你好运。

答案 1 :(得分:1)

与原始问题无关,但仍然存在问题: -

[NSString stringWithFormat: (@"%@", etc)];

此表达式不会执行您真正想要的操作。额外的括号使得逗号表达式,其中@"%@"将被忽略,并变为

[NSString stringWithFormat: etc];

可变参数调用中不应该有任何括号。请使用

[NSString stringWithFormat:@"%@", etc];

这可以更有效地编写为[etc description]