将字符串追加到UILabel文本?
问题描述:
我开始为iPhone开发。我有一个初学者型的问题,我敢肯定:将字符串追加到UILabel文本?
我有这个,它的工作原理:
testLabel.text = [NSString stringWithFormat:@"%@ to %@", testLabel.text, newLabelText];
我希望我能使用“+ =”操作符,但我得到一个编译错误(无效的操作数为二进制+,已经 '结构的NSString *' 和 '结构的NSString *'):
testLabel.text += [NSString stringWithFormat:@"to %@", newLabelText];
为什么我不能这样做呢?
另外,如何缩短我的第一段代码?
答
您不能使用+=
运算符,因为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是一种表达性语言,因此习惯于使用长描述性函数和变量名称。
尝试使用发布的解决方案[这里](http://stackoverflow.com/questions/510269/how-do-i-concatenate-strings-in-objective-c)。 – luvieere 2009-10-05 02:16:23