【问题标题】:Difference between stringByAppendingString and appendString in iosios中stringByAppendingString和appendString的区别
【发布时间】:2015-06-22 10:05:37
【问题描述】:

stringByAppendingStringappendString 有什么区别?如果NSString 不可变,那么它怎么附加字符串呢?

【问题讨论】:

  • 一个返回字符串对象,另一个不返回。
  • 如果我们要追加字符串,哪个更高效?哪个是返回字符串,哪个返回另一个对象?你能解释一下吗?
  • 我总是使用stringByAppendingString

标签: ios objective-c swift nsstring nsmutablestring


【解决方案1】:

appendString: 来自NSMutableStringstringByAppendingString: 来自NSString

第一个改变了现有的NSMutableString

将给定字符串的字符添加到接收器的末尾。

第二个返回一个新的NSString,它是接收者和参数的串联。

返回通过将给定字符串附加到接收器而生成的新字符串。

原因是常规的NSString是不可变的,你不能直接向它附加一些东西。然而,NSMutableString 顾名思义是可变的,因此可以修改。

【讨论】:

  • 感谢您的回答。我脑子里有一个小问题,如果我们想附加任何字符串,我们必须使用哪个字符串以及为什么?
  • 如果它的NSString 使用stringByAppendingString: 否则为NSMutableString 另一个。
  • @user3812547 通常,除非您必须多次附加,否则 NSString 就足够了。如果你必须追加几次,这并不重要 - 在这里考虑性能真的没有必要,除非你需要经常执行操作
【解决方案2】:

stringByAppendingStringdocumentation 声明它

通过将给定字符串附加到接收器返回一个新字符串

所以它不会修改现有的字符串 - 它不能,因为正如您所说,NSString 是不可变的

另一方面,appendStringNSMutableString 的变异方法,它修改了接收NSMutableString

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2013-09-07
    相关资源
    最近更新 更多