在升级到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)'
请指出正确的解决方案/文档。
答案 0 :(得分:3)
在kCTSuperscriptAttributeName
之后添加“as!String”答案 1 :(得分:0)
addAttribute
接受(String, value: AnyObject, range: NSRange)
类型的参数列表。后两种似乎没问题,但你不能在这种方法中使用CFString!
。
你必须在Swift 1.2中使用原生的Swift String
类型(这标志着它与Objective-C传统的进一步背离)。将kCTSuperscriptAttributeName
的类型更改为String
可以解决问题。