addAttribute 在 Swift 1.2 (Xcode 6.3) 中失败
Posted
技术标签:
【中文标题】addAttribute 在 Swift 1.2 (Xcode 6.3) 中失败【英文标题】:addAttribute fails in Swift 1.2 (Xcode 6.3) 【发布时间】:2015-04-12 01:29:13 【问题描述】:这在升级到 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
请指出正确的解决方案/文档。
【问题讨论】:
【参考方案1】:只需在 kCTSuperscriptAttributeName 后添加“as!String”
【讨论】:
【参考方案2】:addAttribute
接受(String, value: AnyObject, range: NSRange)
类型的参数列表。后两者似乎没问题,但你不能用这种方法使用CFString!
。
您必须在 Swift 1.2 中使用原生 Swift String
类型(这标志着进一步背离了其 Objective-C 传统)。将kCTSuperscriptAttributeName
的类型更改为String
应该可以解决问题。
【讨论】:
以上是关于addAttribute 在 Swift 1.2 (Xcode 6.3) 中失败的主要内容,如果未能解决你的问题,请参考以下文章
“NSAttributedString”类型的值没有成员“addAttributes”
使用 Swift 在 iOS 11 中为 NSAttributedString 添加删除线