2015-06-22 540 views
0

stringByAppendingStringappendString之間的區別是什麼?如果NSString不可變,那麼它如何追加字符串?ios中stringByAppendingString和appendString之間的區別

+1

一個返回一個字符串對象,另一個不是。 –

+0

如果我們想追加字符串,哪一個更高效?哪一個是返回字符串,哪一個返回另一個對象?你能解釋一下嗎? – user3812547

+0

我總是使用'stringByAppendingString'。 –

回答

4

appendString:是從NSMutableString,stringByAppendingString:是從NSString

第一個變異現有的NSMutableString

在接收者的末尾添加給定字符串的字符。

第二個返回一個新的NSString這是一個接收器和參數的串聯。

返回通過將給定字符串附加到接收方而創建的新字符串。

原因是常規的NSString是不可變的,你不能直接附加一些東西給它。然而,正如名字所示,NSMutableString是可變的,因此可以修改。

+0

感謝您的回答。我腦海中有一個小問題,如果我們想追加任何字符串,我們必須使用哪一個,爲什麼? – user3812547

+0

如果它的'NSString'使用'stringByAppendingString:'否則用於'NSMutableString'另一個。 –

+0

@ user3812547一般來說NSString是足夠的,除非你必須追加很多次。如果你不得不追加幾次,這並不重要 - 考慮到這裏的性能真的不是必須的,除非你需要經常執行操作 – luk2302

0

documentationstringByAppendingString說,它

返回給定的字符串追加到接收器

所以它不會修改現有的字符串做了一個新的字符串 - 它不能,因爲正如你所指出的那樣,NSString是不可變的,另一方面,NSMutableString的變異方法是修改接收NSMutableString

相關問題