J'utilise ce NSURLConnection avec les délégués.
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
Le problème est que le site Web ne répond pas du tout. Rien, juste tourne dans le navigateur avec une page vierge, pas d'échec. Dans mes délégués, je gère l'échec, mais lorsque le site ne répond pas, les délégués ne sont pas appelés. Avez-vous des idées sur la façon de suspendre la connexion?
Vous pouvez spécifier un délai d'expiration dans votre objet NSURLRequest
. Une façon de le faire est de le construire via le requestWithURL:cachePolicy:timeoutInterval:
méthode. (Vous pouvez passer le paramètre NSURLRequestUseProtocolCachePolicy
cachePolicy par défaut si vous ne voulez pas vous soucier de cette partie.) Le délai d'expiration est une valeur à virgule flottante en secondes, comme le sont pratiquement tous les intervalles de temps dans le SDK iPhone.
Assurez-vous également que votre délégué NSURLConnection
est défini et répond au connection:didFailWithError:
méthode. Une connexion appelle toujours cette méthode ou connectionDidFinishLoading:
une fois la connexion terminée.
Edit: Cette réponse est désormais obsolète, mais à la date de réponse était exacte.
Je sais que ce fil est ancien, mais j'ai également rencontré ce problème. Cela s'est produit lors du test de l'application en dehors du réseau interne où les services vivaient. Le service finira par expirer, mais Apple impose une période de 240 secondes (4 minutes) avant l'expiration du délai. Consultez ce fil pour plus d'informations à ce sujet.