【问题标题】:Get String from NSMutableString in swift快速从 NSMutableString 获取字符串
【发布时间】:2019-12-13 08:59:20
【问题描述】:

NSMutableString 获取String 的正确方法是什么?我目前正在使用:

var mutableString = NSMutableString(string: string)
var string = mutableString.substring(from: 0)

这似乎有点骇人听闻...

谢谢

【问题讨论】:

  • 你的代码意义不大。查看代码正确的方法根本就使用NSMutableString
  • 您可以在它们之间架桥:var string = mutableString as String
  • @vadian 我跳过了修改字符串的部分,因为这对我的问题并不重要。这里是:mutableString.replaceCharacters(in: NSRange(location: 4, length: 5), with: "XXXXX")
  • 请看我的回答

标签: swift string nsmutablestring


【解决方案1】:

只需将NSMutableString 转换为String

var mutableString = NSMutableString(string: "Example")
var string = String(mutableString)

或者:

var mutableString = NSMutableString(string: "Example")
var string = mutableString as String

【讨论】:

    【解决方案2】:

    正如 cmets 中已经提到的,正确的方法是根本不使用NSMutableString

    你给的例子

    let mutableString = NSMutableString(string: "Hello World")
    mutableString.replaceCharacters(in: NSRange(location: 4, length: 5), with: "XXXXX")
    let swiftString = String(mutableString)
    

    可以用原生 Swift 编写

    var string = "Hello World"
    
    let nsRange = NSRange(location: 4, length: 5)
    string.replaceSubrange(Range(nsRange, in: string)!, with: "XXXXX")
    

    同样的结果,但后者更有效。

    【讨论】:

      【解决方案3】:

      这应该可以解决问题:

      let newStr = String(mutableString)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-24
        • 1970-01-01
        • 2018-06-30
        • 2011-07-27
        • 1970-01-01
        • 1970-01-01
        • 2019-11-03
        • 1970-01-01
        相关资源
        最近更新 更多