首页 文章

在Swift 1.2(Xcode 6.3)中addAttribute失败

提问于
浏览
4

这在升级到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

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

2 回答

  • 0

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

  • 3

    addAttribute 接受 (String, value: AnyObject, range: NSRange) 类型的参数列表 . 后两个看起来很好,但是你不能用这个方法使用 CFString! .

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

相关问题