Swift3 如何在Swift 3中将带有HTML标记的字符串切换为清除字符串

Swift3 如何在Swift 3中将带有HTML标记的字符串切换为清除字符串,swift3,ios10,Swift3,Ios10,我有旧代码: func htmlToText(encodedString:String) -> String? { let encodedData = encodedString.dataUsingEncoding(NSUTF8StringEncoding)! do { return try NSAttributedString(data: encodedData, options: [NSDocumentTypeDocumentAttribu

我有旧代码:

   func htmlToText(encodedString:String) -> String?
{
    let encodedData = encodedString.dataUsingEncoding(NSUTF8StringEncoding)!
    do
    {
        return try NSAttributedString(data: encodedData, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding], documentAttributes: nil).string
    } catch let error as NSError {
        print(error.localizedDescription)
        return nil
    }
}
我想把它翻译成swift 3,现在我有:

let encodedData = encodedString.data(using: String.Encoding.utf8)!
    do
   {
        return try NSAttributedString(data: encodedData, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:String.Encoding.utf8], documentAttributes: nil).string
    } catch let error as NSError {
        print(error.localizedDescription)
        return nil
    }
此代码生成错误: 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[\u SwiftValue unsignedIntegerValue]:未识别的选择器已发送到实例0x60800251d30”
我不知道会出什么问题。有人能帮我吗?

字符串。编码是一种快速结构,不能传递给Objective-C world。当Swift在
Any
中找到这些东西时,它会生成
\u SwiftValue
,这在Objective-C中是完全无用的

试试这个:

return try NSAttributedString(data: encodedData, options: [
    NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
    NSCharacterEncodingDocumentAttribute:String.Encoding.utf8.rawValue
], documentAttributes: nil).string