ios中stringByAppendingString和appendString之间的区别

问题描述:

stringByAppendingStringappendString之间的区别是什么?如果NSString不可变,那么它如何追加字符串?ios中stringByAppendingString和appendString之间的区别

+1

一个返回一个字符串对象,另一个不是。 –

+0

如果我们想追加字符串,哪一个更高效?哪一个是返回字符串,哪一个返回另一个对象?你能解释一下吗? – user3812547

+0

我总是使用'stringByAppendingString'。 –

appendString:是从NSMutableString,stringByAppendingString:是从NSString

第一个变异现有的NSMutableString

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

第二个返回一个新的NSString这是一个接收器和参数的串联。

返回通过将给定字符串附加到接收方而创建的新字符串。

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

+0

感谢您的回答。我脑海中有一个小问题,如果我们想追加任何字符串,我们必须使用哪一个,为什么? – user3812547

+0

如果它的'NSString'使用'stringByAppendingString:'否则用于'NSMutableString'另一个。 –

+0

@ user3812547一般来说NSString是足够的,除非你必须追加很多次。如果你不得不追加几次,这并不重要 - 考虑到这里的性能真的不是必须的,除非你需要经常执行操作 – luk2302

documentationstringByAppendingString说,它

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

所以它不会修改现有的字符串做了一个新的字符串 - 它不能,因为正如你所指出的那样,NSString是不可变的,另一方面,NSMutableString的变异方法是修改接收NSMutableString