stringByAppendingString
和appendString
之間的區別是什麼?如果NSString
不可變,那麼它如何追加字符串?ios中stringByAppendingString和appendString之間的區別
回答
appendString:
是從NSMutableString
,stringByAppendingString:
是從NSString
。
第一個變異現有的NSMutableString
。
在接收者的末尾添加給定字符串的字符。
第二個返回一個新的NSString
這是一個接收器和參數的串聯。
返回通過將給定字符串附加到接收方而創建的新字符串。
原因是常規的NSString
是不可變的,你不能直接附加一些東西給它。然而,正如名字所示,NSMutableString是可變的,因此可以修改。
感謝您的回答。我腦海中有一個小問題,如果我們想追加任何字符串,我們必須使用哪一個,爲什麼? – user3812547
如果它的'NSString'使用'stringByAppendingString:'否則用於'NSMutableString'另一個。 –
@ user3812547一般來說NSString是足夠的,除非你必須追加很多次。如果你不得不追加幾次,這並不重要 - 考慮到這裏的性能真的不是必須的,除非你需要經常執行操作 – luk2302
的documentation爲stringByAppendingString
說,它
返回給定的字符串追加到接收器
所以它不會修改現有的字符串做了一個新的字符串 - 它不能,因爲正如你所指出的那樣,NSString是不可變的,另一方面,NSMutableString
的變異方法是修改接收NSMutableString
。
- 1. NSMutableString中nil和@「」之間的區別iOS
- 2. iOS 7 - viewDidLoad和viewDidAppear之間的區別
- 3. iOS中1000與1000.0之間的區別
- 4. 之間的〜/和的區別../
- 5. '#','%'和'$'之間的區別
- 6. {!!之間的區別!!}和{{}}
- 7. '+ ='和'= +'之間的區別?
- 8. 「。+」和「。+?」之間的區別
- 9. .eq之間的區別。和==
- 10. #。/和#之間的區別。 ./
- 11. !=和!之間的區別==
- 12. 「%〜dp0」和「。\」之間的區別?
- 13. | =和^ = css之間的區別
- 14. 之間的區別。和#
- 15. ==和case之間的區別?
- 16. 「**/* /」和「** /」之間的區別?
- 17. jQuery - '。'之間的區別和「#」
- 18. 「?1」和「?」之間的區別
- 19. `%in%`和`==`之間的區別
- 20. fmod和%之間的區別
- 21. 之間的區別:+和:+
- 22. [UIScreen mainScreen] .bounds.size iOS 7和iOS 8之間的區別
- 23. iOS Storyboard Segue Types之間的區別
- 24. iOS中的.tdb和.dylib之間的區別(Xcode 7)
- 25. make中的「$(shell ...)」和「$$(...)」之間的區別
- 26. python中的[]和[,,]之間的區別
- 27. javascript中的/ * * /和//之間的區別
- 28. $之間的區別?和PowerShell中的$ LastExitCode
- 29. jQuery中的$和$()之間的區別
- 30. C中的/ +和+之間的區別?
一個返回一個字符串對象,另一個不是。 –
如果我們想追加字符串,哪一個更高效?哪一個是返回字符串,哪一個返回另一個對象?你能解釋一下嗎? – user3812547
我總是使用'stringByAppendingString'。 –