web-dev-qa-db-fra.com

Comment réparer l'erreur -999 de NSURLErrorDomain dans le système d'exploitation iPhone 3.0

J'essaie de mettre à jour mon application iPhone pour qu'elle fonctionne avec OS 3.0. J'ai un UIWebView qui montre une page fine. Mais lorsque je clique sur un lien, il appelle mon délégué pour didFailLoadWithError et l'erreur est Impossible de terminer l'opération. (Erreur NSURLErrorDomain -999.) J'ai vérifié que cela fonctionne toujours avec OS 2.2.1, c'est donc quelque chose qui a changé dans 3.0.

Des idées?

51
dp.

J'ai pu trouver la réponse ici .

Ce fil contenait cette description de cette erreur: This error may occur if an another request is made before the previous request of WebView is completed...

J'ai contourné ce problème en ignorant cette erreur et en laissant la vue Web continuer à se charger.

if ([error code] != NSURLErrorCancelled) {
//show error alert, etc.
}
119
dp.

NSURLErrorCancelled (-999)

"Renvoyé lorsqu'un chargement asynchrone est annulé. Un délégué de la structure du kit Web recevra cette erreur lorsqu'il effectuera une opération d'annulation sur une ressource de chargement. Notez qu'un délégué NSURLConnection ou NSURLDownload ne recevra pas cette erreur si le téléchargement est annulé."

Pour ma situation (et probablement la vôtre), cela peut être ignoré:

if([error code] == NSURLErrorCancelled) return; // Ignore this error
28
BadPirate

Les DEUX réponses ci-dessus étaient CORRECTES> Faites juste un retour si la demande de chargement provoque l'annulation.

Je tiens également à souligner que, les gens n'oubliez pas de mettre un NSLog à l'intérieur de votre méthode didFailLoadWithError, cela peut éviter de perdre beaucoup de temps en repérant le problème!

Voici donc la solution finale avec tout ce que j'ai mentionné ci-dessus:

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"ERROR : %@",error); //Get informed of the error FIRST
    if([error code] == NSURLErrorCancelled) 
        return;
}
10
Khayrattee