【问题标题】:Converting a NSAttributedString into a NSString using Swift使用 Swift 将 NSAttributedString 转换为 NSString
【发布时间】:2014-08-25 19:35:54
【问题描述】:

我有一个NSMutableAttributedString,想把它转换回一个简单的String

var attributedString = NSMutableAttributedString(string: "hello w0rld")

如何最简单地从NSMutableAttributedString 中获取String

【问题讨论】:

    标签: swift string nsattributedstring nsmutableattributedstring


    【解决方案1】:

    NSMutableAttributedString 上使用string 属性:

    var attributedString = NSMutableAttributedString(string: "hello, world!")
    var s = attributedString.string
    

    【讨论】:

    • @Julian:嗯,是的,NSString 没有任何属性。
    • 对,但是 NSAttributedString 可以。我希望属性将与字符串一起呈现。你知道我的意思?否则这些会丢失。
    • @Julian:在那种情况下,你不会费心转换成NSString
    • 使用常规字符串有些事情会更简单,例如调整文本以适应框架,或替换标签的文本。此外,如果您经常操作文本,使用字符串的成本会更低。所以这就是为什么我会费心转换它。
    • string 属性返回 String 对象,而不是 NSString 对象。
    【解决方案2】:

    如果您严格要求 NSString,而不是 String,请使用以下代码:

    let s = attributedString.string as NSString
    

    【讨论】:

    • mipadi已经给出了这个答案。 OP 要求NSString,因为问题很旧,当时SwiftNSString 而不是String。所以现在可能没有人愿意从NSMutableAttributedString 得到NSString
    • @TheTiger 在某些情况下,您可能特别想要NSString 而不是String。特别是,如果您需要使用字符串中的NSRangeNSRangeRange 不兼容。
    • 仍然在 2018 年,将 String 转换为 NSString 是非常基本的。
    • 当然,这是基本的,但有些人不知道,如果你用谷歌搜索这是第一个出现的答案,所以对某些人来说这可能会有所帮助。
    【解决方案3】:

    如果您想保留属性字符串,只需使用yourLabel.attributedText = atributedTtext

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多