Comment puis-je annuler un appel asynchrone à travers NSURLConnection sendAsynchronousRequest?
J'ai reçu un appel de service web de l'exécution de certains de validation sur la saisie de l'utilisateur en temps réel. Je voudrais utiliser [NSURLConnection sendAsynchronousRequest]
sur la validation (qui a été introduit dans l'iOS 5), mais l'annuler si l'utilisateur modifie le champ de saisie du contenu dans le temps de le dire. Quelle est la meilleure façon de annuler une demande en cours?
Vous devez vous connecter pour publier un commentaire.
Il ne semble pas qu'il y est une bonne façon de le faire. La solution semble être de ne pas utiliser le nouveau
[NSURLConnection sendAsynchronousRequest]
dans des situations où vous avez besoin d'annuler la demande.J'ai réussi à le faire en plaçant le sendAsynchronousRequest méthode dans un autre
DownloadWrapper
classe, comme suit:Pour utiliser cette classe, je ne les suivants, en plus de déclarer
DownloadWrapper *downloadWrapper
variable (dans la déclaration d'interface) et la mise en œuvre du protocole de méthodes qui gère la réponse ou l'absence de l'un:Puis-je simplement faire ce qui suit pour annuler la connexion lorsque la vue est sur le point de disparaître:
C'est aussi simple que cela. Ce système pourrait imiter le documentée
cancel
méthode, qui précise qu'il n'suivantes:Je craignais que cela (un peu naïf) méthode signifie que les paquets de données seront toujours venir à travers en réponse à notre demande d'URL - seulement ce que nous sommes, n'est plus "à l'écoute en" en tant que délégué. Mais ensuite j'ai réalisé qu'une fois que l'URL de la requête a été envoyée à travers, il n'y a vraiment aucun moyen de stopper la réponse de revenir à nous - nous ne pouvons l'ignorer (si ce n'est, à ce niveau, puis encore à un certain niveau inférieur dans la hiérarchie du réseau). S'il vous plaît corrigez-moi si je me trompe.
En soit, espérons que cette aide.