Der folgende Code wurde perfekt mit Old Swift bearbeitet. Dies ist eine Erweiterung von StringSwift-3 Fehler: '- [_ SwiftValue unsignedIntegerValue]: unerkannter Selektor
func stringByConvertingHTML() -> String {
let newString = replacingOccurrences(of: "\n", with: "<br>")
if let encodedData = newString.data(using: String.Encoding.utf8) {
let attributedOptions : [String: AnyObject] = [
NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType as AnyObject,
NSCharacterEncodingDocumentAttribute: String.Encoding.utf8 as AnyObject
]
do {
let attributedString = try NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil) //Crash here
return attributedString.string
} catch {
return self
}
}
return self
}
Aber in schnellen 3 stürzt sagen
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_SwiftValue unsignedIntegerValue]: unrecognized selector sent to instance 0x6080002565f0'
Wer mir bitte vorschlagen, was Sie brauchen, zu tun?
Dank es funktioniert gut. Aber es wird 'NSNumber (value: String.Encoding.utf8.rawValue)' –
Lebensretter! (PS: Auch benötigt die NSNumber (..) zu arbeiten, könnten Sie plz aktualisieren die Antwort, um das stattdessen?) – Marchy
Sie sollten nur 'String.Encoding.utf8.rawValue', wie Swift wird automatisch konvertieren' Int's und 'UInt' in' NSNumber', wenn ein Swift-Dictionary an eine Funktion übergeben wird, die ein 'NSDictionary' erwartet. Dies erfordert jedoch, dass das schnelle Wörterbuch ein '[String: Any]' Array ist. Siehe auch [this] (https://developer.apple.com/swift/blog/?id=39) Swift Blogeintrag. – MaddTheSane