在Swift 1.2(Xcode 6.3)中addAttribute失败

时间:2015-04-12 01:29:13

标签: xcode swift

在升级到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”作为下标)。

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

  

无法使用addAttribute

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

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

2 个答案:

答案 0 :(得分:3)

在kCTSuperscriptAttributeName

之后添加“as!String”

答案 1 :(得分:0)

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

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