update tools instalar code swift3 xcode8-beta4

swift3 - tools - ¿Cómo funciona el error en Swift en Xcode 8 beta 4?



xcode update (3)

Parece que al convertir nuestro código antiguo a beta 4, sigo lanzando Error a NSError. Eso incluso conducirá a veces a una advertencia "la conversión condicional de ''Error'' a ''NSError'' siempre tiene éxito". Siento que no estoy entendiendo la mejor manera de usar Error. Quiero llegar a ideas como error.code, error.localizedDescription ... ¿Existe una buena documentación o tutoriales que expliquen estos cambios de error?

Por ejemplo:

func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {

Ahora mismo estoy haciendo algo como:

if let error = error as? NSError { if error.code == NSURLErrorCancelled {

Pero eso da la advertencia "La conversión condicional de ''Error'' a ''NSError'' siempre tiene éxito"


El error es puenteable a NSError de la misma manera que String es puenteable a NSString. Es decir (error como NSError) funcionaría.

if (error as NSError).code == NSURLErrorCancelled { // code }


Error al capturar en Swift 3 ha cambiado. Buscar NSError en Notas de la versión . Citar:

Además, los tipos de error importados de Cocoa y Cocoa Touch mantienen toda la información en el NSError correspondiente, por lo que ya no es necesario catch let as NSError para extraer (por ejemplo) el diccionario de información del usuario. Los tipos de error específicos también contienen accesores escritos para sus claves comunes de información de usuario. Por ejemplo:

do { let regex = try NSRegularExpression(pattern: "(", options: []) } catch { // error is of type NSError already print(error.localizedDescription) }


Hacer esto:

Swift 3.0 y Swift 4.0

if error._code == NSURLErrorCancelled { }