Est il possible de le faire Alamofire les demandes avec les tentatives

J'ai beaucoup d'endroits dans le code où Alamofire de requête/réponse sont traitées.

Chacun de ces demandes peuvent échouer à cause de certain problème intermittent (la plus courante est feuilletée réseau).

Je voudrais être en mesure de réessayer demande 3 fois avant de les renflouer.

La méthode simple serait d'avoir quelque chose comme ça

var errorCount = 0
func requestType1() {
   let request = Alamofire.request(...).responseJSON { response in
       if (isError(response) && errorCount < 3) {
          errorCount += 1
          request1()
       } 
       if (isError(response)) {
          handleError()
       }

       handleSuccess()
   }
}

Cependant, je n'aime pas cette approche BEAUCOUP pour plusieurs raisons. La plus évidente est que j'ai besoin de mettre en œuvre ce type de code pour chaque type de demande (et j'ai quelque chose comme 15 d'entre eux).

Je suis curieux de savoir si il y a moyen de faire quelque chose comme (où les changements sont minimes et non intrusive)

let request = Alamofire.request(..., **3**) 
  • Pourriez-vous faire un wrapper qui prend la requête comme une fin de bloc? Alors au lieu d'appeler directement à la demande, vous avez la même demande de code dans le bloc d'appel de l'emballage? Rend plus facile de modifier le code.
  • Carlos. Je pense que vous avez raison. J'ai oublié ceci :). Voulez-vous écrire une réponse?
  • Bien sûr, donne-moi un peu de temps et je vais le faire
  • tout vous expliquer comment vous l'avez acheté?
InformationsquelleAutor Victor Ronin | 2016-05-24