within unreachable try thrown throwing occur how handling functions example errors catch calls because are ios xcode exception swift3

ios - unreachable - try catch swift 4



Error de Swift-3: ''-[_ SwiftValue unsignedIntegerValue]: selector no reconocido (3)

En Swift3 ya no se necesita lanzar a AnyObject y tampoco NSNumber.

let attrs: [String: Any] = [ NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue ]

El siguiente código funcionó perfectamente con el viejo swift. Esta es una extensión de String

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 }

Pero en Swift 3 se bloquea diciendo

*** Finalización de la aplicación debido a la excepción no detectada ''NSInvalidArgumentException'', razón: ''- [_ SwiftValue unsignedIntegerValue]: selector no reconocido enviado a la instancia 0x6080002565f0''

Alguien por favor sugierame lo que hay que hacer?


Esta publicación me salvó el día. Después de migrar a Swift 3, el pequeño cambio String.Encoding.utf8 a String.Encoding.utf8.rawValue arregló la trampa que se informa aquí.

Línea original:

... options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8], ...

cambiado a

options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue],

agregue .rawValue al final ...


Tuve el mismo problema:

let attributedOptions : [String: AnyObject] = [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType as AnyObject, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8 as AnyObject ]

Aquí el String.Encoding.utf8 falla la verificación de tipo. Use NSNumber(value: String.Encoding.utf8.rawValue)