将字符串追加到UILabel文本?

问题描述:

我开始为iPhone开发。我有一个初学者型的问题,我敢肯定:将字符串追加到UILabel文本?

我有这个,它的工作原理:

testLabel.text = [NSString stringWithFormat:@"%@ to %@", testLabel.text, newLabelText]; 

我希望我能使用“+ =”操作符,但我得到一个编译错误(无效的操作数为二进制+,已经 '结构的NSString *' 和 '结构的NSString *'):

testLabel.text += [NSString stringWithFormat:@"to %@", newLabelText]; 

为什么我不能这样做呢?

另外,如何缩短我的第一段代码?

+0

尝试使用发布的解决方案[这里](http://stackoverflow.com/questions/510269/how-do-i-concatenate-strings-in-objective-c)。 – luvieere 2009-10-05 02:16:23

您不能使用+=运算符,因为C和Objective-C不允许运算符重载。您试图使用带有两种指针类型的+=,这是不允许的 - 如果+=表达式的左侧有指针类型,则右侧必须是整型,结果是指针算术,这不是你想要的在这种情况下。

想想使用的NSMutableString - 您可以使用appendString:方法,如:

NSMutableString *str = [@"hello" mutableCopy]; 
[str appendString:@" world!"];

无法完成,因为的ObjectiveC不支持它,是的ObjectiveC超过C.

一小层
testLabel.text = [testLabel.text stringByAppendingFormat:@" to %@", newLabelText]; 

NSString不可变(它们不能被改变),这就是为什么你不能使用+ =。

NSMutableString可以更改。你可以在这里使用它们。

你的代码已经很小了。 Objective-C是一种表达性语言,因此习惯于使用长描述性函数和变量名称。