2010-09-15 19 views
2

je voulais juste savoir si cela est la bonne façon de vérifier si un sendsynchronousrequest a réussi:vérifier si sendsynchronousrequest a réussi

NSData* returnData = [NSURLConnection sendSynchronousRequest:req returningResponse:nil error:nil]; 
if(returnData == nil) 
{ 
    //code showing an alertView for example 
} 
else 
{ 
    //do somthing else 
} 

Merci d'avance pour vos commentaires
sean

Répondre

0

Je pense que vous voulez passer quelque chose dans votre erreur:

NSData* returnData = [NSURLConnection sendSynchronousRequest:req returningResponse:nil error:&error]; 

if(error != 0) 
    // good to go 
else 
    // error 

Mais je pourrais me tromper, juste rapidement jeté un coup d'oeil.

J'ai vu ce post .. mais je pense qu'il demande une chose semblable:

http://discussions.apple.com/thread.jspa?threadID=1647649

+1

Vérifiez si (erreur! = nil) – Bharathi

0

Si vous travaillez avec HTTP, vous pouvez également vérifier le code d'état. Par exemple:

NSHTTPURLResponse *response; 
NSError *error; 
NSData *data = [NSURLConnection sendSynchronousRequest:request 
            returningResponse:&response 
               error:&error]; 

if ((nil != data) && (200 == [response statusCode])) { 
    // Process data 
} 
+0

Juste pour ajouter, en utilisant XCode 6.2 et iOS 8.2, et un service web https, je trouve que le rendement « sendSynchronousRequest » une réponse NSHTTPURL nulle sur les services qui retournent une réponse «401 non autorisée». Mais, le retour 'data' contient une structure XML désordonnée, contenant une chaîne 'Access is denied'. Très étrange. –

0

La manière correcte est de définir un ensemble variable d'erreur, il nul et utiliser sa référence dans NSURLConnection de telle sorte que l'erreur est renvoyée dans cette position de mémoire de référence .Vérifier la mémoire est nul et si le succès nul, si elle a une mémoire valide, il est une erreur

NSError *error; 
NSData *data = [NSURLConnection sendSynchronousRequest:request 
            returningResponse:&response 
               error:&error]; 

if (error ==nil) { 
    // Success mechanism 
} 
else 
{ 
//Failure Mechanism 
}