【问题标题】:addAttribute fails in Swift 1.2 (Xcode 6.3)addAttribute 在 Swift 1.2 (Xcode 6.3) 中失败
【发布时间】:2015-04-12 01:29:13
【问题描述】:

这在升级到 Swift 1.2 和 Xcode 6.3 之前有效。

var mutString : NSMutableAttributedString = NSMutableAttributedString(string: "K2")
mutString.addAttribute(kCTSuperscriptAttributeName, value:-1, range:NSMakeRange(1, 1))
var result : String = mutString.string

结果应包含字符串 K2(下标为“2”)。

但现在我得到了这个错误:

无法使用'(CFString!, value:Int, range:NSRange)' 类型的参数列表调用addAttribute

请指出正确的解决方案/文档。

【问题讨论】:

    标签: xcode swift


    【解决方案1】:

    只需在 kCTSuperscriptAttributeName 后添加“as!String”

    【讨论】:

      【解决方案2】:

      addAttribute 接受(String, value: AnyObject, range: NSRange) 类型的参数列表。后两者似乎没问题,但你不能用这种方法使用CFString!。

      您必须在 Swift 1.2 中使用原生 Swift String 类型(这标志着进一步背离了其 Objective-C 传统)。将kCTSuperscriptAttributeName 的类型更改为String 应该可以解决问题。

      【讨论】:

        猜你喜欢
        • 2015-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多