tools older swift swift2 xcode7

swift - older - xcode version 10



Swift 2: conversión no válida de la función de lanzamiento de tipo a la función de no lanzar (2)

Tengo un código auto-escrito (feo) portado a Swift2 y obtuve este mensaje de error en una función lambda:

Lo que no entendí es que manejo todo el código con la función de lanzamiento de error JSONObjectWithData y detecto el error. No tiro nada en el código. Sin embargo el compilador significa que estoy lanzando un error.

Necesito entender este comportamiento. Sea amable porque sé que tengo que mejorar mi código para hacer un uso completo del nuevo concepto de manejo de errores en swift2.

Muchas gracias por adelantado.


Creo que la mejor manera de avanzar es cambiar la firma de la función de falla para tomar un tipo de ErrorType . Entonces solo

catch let error { failure(error: error) }

haré


Esto fue rápido. He descubierto la solución para mi problema con un poco de ayuda de este artículo:

http://www.hackingwithswift.com/new-syntax-swift-2-error-handling-try-catch

tiene que poner una cláusula de captura general al final del código porque la captura de NSError por sí sola no es suficiente.

catch let error as NSError { failure(error: error) return } // this is important --> catch { }