Générer votre propre code d'Erreur dans swift 3

Ce que je suis en train de réaliser est de procéder à un URLSession demande swift 3. Je suis en effectuant cette action dans une fonction distincte (pour ne pas écrire le code séparément pour GET et POST) et le retour de l' URLSessionDataTask et de la manipulation de la réussite et de l'échec dans les fermetures. Un peu comme ce-

let task = URLSession.shared.dataTask(with: request) { (data, uRLResponse, responseError) in

     DispatchQueue.main.async {

          var httpResponse = uRLResponse as! HTTPURLResponse

          if responseError != nil && httpResponse.statusCode == 200{

               successHandler(data!)

          }else{

               if(responseError == nil){
                     //Trying to achieve something like below 2 lines
                     //Following line throws an error soo its not possible
                     //var errorTemp = Error(domain:"", code:httpResponse.statusCode, userInfo:nil)

                     //failureHandler(errorTemp)

               }else{

                     failureHandler(responseError!)
               }
          }
     }
}

Je ne souhaite pas gérer la condition d'erreur dans cette fonction et souhaitez générer une erreur en utilisant le code de réponse et de retour cette Erreur à gérer où cette fonction est appelée à partir d'.
Quelqu'un peut-il me dire comment aller à ce sujet? Ou n'est-ce pas le "Swift" de chemin à faire sur la gestion de telles situations?

  • Essayez d'utiliser NSError au lieu de Error dans la déclaration (var errorTemp = NSError(...))
  • Cela résout le problème, mais j'ai pensé swift 3 ne souhaitez pas continuer avec l'utilisation de NS?
  • Il n'en développement iOS. Pour pure développement rapide, vous devez créer votre propre erreur instance en conformant le Error protocole
  • Votre solution ne résoudra pas le problème, n'hésitez pas à l'ajouter comme une réponse afin que je puisse l'accepter!
InformationsquelleAutor Rikh | 2016-11-18