10
votes

Gérer un nsurlrequest avec le délai d'attente lors de l'utilisation de délégués

J'utilise un NSMUTABLEURLREQUEST pour vous connecter à un site Web pour obtenir une réponse JSON. Je le fais en générant la demande, puis en utilisant NsurlConnection avec un délégué de soi pour gérer la connexion ASYNC. J'ai mis en place toutes les méthodes de délégué normales:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection


3 commentaires

Je suis d'accord Corey que je devrais l'obtenir dans la méthode DiddailwithError, mais cela ne s'appelle jamais. Les points d'arrêt et les bûches dans cette méthode montrent qu'il n'est jamais appelé à un délai d'attente.


Pour plus de contexte, l'incile que cela fait une différence, j'utilise la méthode parlée dans la réponse pour Stackoverflow.com/Questtions/332276/... pour garder une trace des connexions que j'ai exceptionnelle.


On dirait que cela aurait pu être un bug dans la bêta SDK de 3,0, car dès que la finale a été publiée, cela fonctionnait comme prévu.


5 Réponses :


1
votes

Mettez quelques déclarations de journal dans chaque méthode et vérifiez ce qu'elles donnent. Chaque fois que cela parte, vous obtenez définitivement une notification sur la console sur le délai d'attente. Je reçois cette notification. Vérifiez votre code et si vous avez toujours des problèmes, laissez-nous savoir.


0 commentaires

4
votes

u BR recevra un tel type d'iofo:

in a échoué avec

Erreur: Domaine d'erreur = NSURLERRORDOMAIN Code = -1001 userinfo = 0xed4870 "expiré"


1 commentaires

Remarque nsurlerrortimedout = -1001



12
votes

Votre délai d'attente est reçu dans cette méthode: xxx


1 commentaires

Comment pouvez-vous tester pour le délai? Cela semble être un gestionnaire d'erreur générique.



3
votes

Le comportement du délai d'attente est un peu bizarre, voir Ce fil sur les forums de développeur d'Apple. < / p>


1 commentaires

Ce fil est génial! Merci! Notez que le thread vous donne une référence à développeur.apple.com/library/mac/#documentation/cocoa/referen CE / ... , qui répertorie toutes les erreurs du Nsurlerdomain



2
votes

Ce que j'ai fait était ceci: xxx

comme indiqué avant -1001 est pour le délai d'attente, dans d'autres tests, j'ai GOT -1003 (pour une mauvaise URL ou aucune connexion disponible).

Je visitais à traiter le temps d'attente pour tout ce que j'ai traité comme une mauvaise url.


0 commentaires