使用从swift3迁移到swift4的以下代码,
let options: [NSAttributedString.DocumentReadingOptionKey: AnyHashable] =
[.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue]
let str = try NSAttributedString( data:string!.data(using: String.Encoding.utf8, allowLossyConversion: true
)!, options:options, documentAttributes: nil)发布于 2017-10-04 16:04:49
我找到了解决方案。您应该删除swift4的.characterEncoding。它在ios8,9,11上工作。
示例:
public func htmlToString() -> String? {
guard let data = data(using: .utf8) else { return nil }
do {
return try NSAttributedString(
data: data,
options: [
.documentType: NSAttributedString.DocumentType.html
],
documentAttributes: nil
).string
} catch let error as NSError {
print(error.localizedDescription)
return nil
}
}祝你今天愉快!
发布于 2018-05-19 04:48:51
对于所有iOS 8,请使用以下方式作为密钥
NSAttributedString.DocumentReadingOptionKey(rawValue: "CharacterEncoding")
而不是将
NSAttributedString.DocumentReadingOptionKey.characterEncoding
直接了当。
注意:请不要使用版本检查来调用NSAttributedString.DocumentReadingOptionKey.characterEncoding,否则仍然不起作用。
https://stackoverflow.com/questions/46484650
复制相似问题