Elegant Swift 4 Solution
Если вы хотите, чтобы строка
myString = String(htmlString: encodedString)
Добавьте это расширение в свой проект
extension String {
init(htmlString: String) {
self.init()
guard let encodedData = htmlString.data(using: .utf8) else {
self = htmlString
return
}
let attributedOptions: [NSAttributedString.DocumentReadingOptionKey : Any] = [
.documentType: NSAttributedString.DocumentType.html,
.characterEncoding: String.Encoding.utf8.rawValue
]
do {
let attributedString = try NSAttributedString(data: encodedData,
options: attributedOptions,
documentAttributes: nil)
self = attributedString.string
} catch {
print("Error: \(error.localizedDescription)")
self = htmlString
}
}
}
Если вы хотите, чтобы NSAttributedString с жирным шрифтом, курсивом, ссылками и т. д.:
textField.attributedText = try? NSAttributedString(htmlString: encodedString)
Добавьте это расширение в свой проект
extension NSAttributedString {
convenience init(htmlString html: String) throws {
try self.init(data: Data(html.utf8), options: [
.documentType: NSAttributedString.DocumentType.html,
.characterEncoding: String.Encoding.utf8.rawValue
], documentAttributes: nil)
}
}