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. '+ ='和'= +'之間的區別?
- 2. {!!之間的區別!!}和{{}}
- 3. ==和case之間的區別?
- 4. '#','%'和'$'之間的區別
- 5. | =和^ = css之間的區別
- 6. 「%〜dp0」和「。\」之間的區別?
- 7. .eq之間的區別。和==
- 8. ==和.equals()之間的區別?
- 9. `%in%`和`==`之間的區別
- 10. [UIScreen mainScreen] .bounds.size iOS 7和iOS 8之間的區別
- 11. iOS Storyboard Segue Types之間的區別
- 12. ios中sendEvent和Send Action之間的區別
- 13. javascript中的/ * * /和//之間的區別
- 14. python中的[]和[,,]之間的區別
- 15. make中的「$(shell ...)」和「$$(...)」之間的區別
- 16. C中的/ +和+之間的區別?
- 17. SPFile和PublishingPage類別之間的區別
- 18. System.Timers.Timer Enabled = true和.Start()之間的區別Enabled = true和.Start()之間的區別
- 19. Selenium中verifyText和verifyTextPresent之間的區別
- 20. angularjs中$ cookiestore和$ cookies之間的區別
- 21. XPath中// * /和/ * //之間的區別?
- 22. TestNG中@DataProvider和@Parameters之間的區別
- 23. Azure中CloudDrive.Delete()和CloudBlobContainer.Delete()之間的區別
- 24. OpenSSL中EVP_PKEY_RSA和EVP_PKEY_RSA2之間的區別?
- 25. R中'foreach'和'parallel'之間的區別?
- 26. PHP中$ POST和$ _POST之間的區別
- 27. ACE_wrappers中ACE.sln和ACE_wrappers.sln之間的區別?
- 28. 中風和填充之間的區別?
- 29. Sharepoint中CatchAccessDeniedException和SuppressAccessDeniedRedirectInScope之間的區別
- 30. C#中char和int之間的區別#
一個返回一個字符串對象,另一個不是。 –
如果我們想追加字符串,哪一個更高效?哪一個是返回字符串,哪一個返回另一個對象?你能解釋一下嗎? – user3812547
我總是使用'stringByAppendingString'。 –