在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个回答

3
只需在 kCTSuperscriptAttributeName 后面添加 "as! String"。

0

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

在 Swift 1.2 中,你必须使用本地的 Swift String 类型(这标志着它进一步远离了 Objective-C 的传统)。将 kCTSuperscriptAttributeName 的类型更改为 String 应该可以解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接