这在升级到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 回答
只需在kCTSuperscriptAttributeName之后添加“as!String”即可
addAttribute
接受(String, value: AnyObject, range: NSRange)
类型的参数列表 . 后两个看起来很好,但是你不能用这个方法使用CFString!
.你必须在Swift 1.2中使用原生Swift
String
类型(这标志着它与Objective-C传统的进一步背离) . 将kCTSuperscriptAttributeName
的类型更改为String
应该可以解决问题 .