Following code was perfectly worked with old swift. This is an extension of String
func stringByConvertingHTML() -> String {
let newString = replacing
In Swift3 no cast to AnyObject is needed anymore and also no NSNumber.
let attrs: [String: Any] = [
NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue
]
This post saved my day. After migrating to Swift 3, the little change String.Encoding.utf8
to String.Encoding.utf8.rawValue
fixed the trap reported here.
Orignal line:
...
options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: String.Encoding.utf8],
...
changed to
options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue],
add the .rawValue
to the end...
I ran into the same problem:
let attributedOptions : [String: AnyObject] = [
NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType as AnyObject,
NSCharacterEncodingDocumentAttribute: String.Encoding.utf8 as AnyObject
]
Here the String.Encoding.utf8
the type check fails. Use NSNumber(value: String.Encoding.utf8.rawValue)