2010-03-18 39 views
0

我看到此帖子:NSString: newline escape in plist但我想知道是否有一种实用的方法来呈现换行符。从PList返回的“NSString”中的换行符不起作用

我目前使用:

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

随机地抓住从replies阵列的字符串。阵列从plist加载像这样:

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

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

回答

2

Moshe:你想做什么?如果您要将文本呈现为UILabel,则必须设置行数(setNumberOfLines:0意味着无限制)。然后设置文本(-[UILabel setText:])并告诉标签自行调整大小(-[UILabel sizeToFit])。现在标签将正确地划线以适应空间。

祝你好运。

+0

是否会按照“\ n”字符,或者仍然忽略它们? – Moshe 2010-03-18 13:36:38

+0

如果您需要指定换行符来自文件,则这不正确。 – 2010-08-20 07:46:20

1

无关你原来的问题,但仍是一个问题: -

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

这种表达不执行你真正想要的操作。额外的括号使一个逗号表达式,其中@"%@"将被忽略,并成为

[NSString stringWithFormat: etc]; 

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

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

这可以写得更有效,因为[etc description]