2009-10-05 153 views
4

我開始爲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

回答

5

您不能使用+=運算符,因爲C和Objective-C不允許運算符重載。您試圖使用帶有兩種指針類型的+=,這是不允許的 - 如果+=表達式的左側有指針類型,則右側必須是整型,結果是指針算術,這不是你想要的在這種情況下。

5

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

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

無法完成,因爲的ObjectiveC不支持它,是的ObjectiveC超過C.

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

NSString不可變(它們不能被改變),這就是爲什麼你不能使用+ =。

NSMutableString可以更改。你可以在這裏使用它們。

你的代碼已經很小了。 Objective-C是一種表達性語言,因此習慣於使用長描述性函數和變量名稱。