如何用HTML标签切换字符串以清除Swift 3中的字符串

时间:2016-10-12 20:53:08

标签: swift3 ios10

我有旧代码:

/etc/hosts

我想把它翻译成swift 3,现在我有:

   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
    }
}

此代码生成错误: 因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [_ SwiftValue unsignedIntegerValue]:无法识别的选择器发送到实例0x608000251d30' 我不知道会出现什么问题。有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

String.Encoding是一个Swift结构,无法传递给Objective-C世界。当Swift在Any中找到这样的东西时,它会生成_SwiftValue,这在Objective-C中完全没用。

试试这个:

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