Ich verwende NSURLConnection's
sendSynchronousRequest:returningResponse:error:
Methode (in einem separaten NSOperation
Thread), um externe Server zu verbinden, um Daten zu retreive. Woher weiß ich, ob die Operation zu Ende gegangen ist oder ein anderer Netzwerkfehler aufgetreten ist?Wie zu erkennen, ob NSURLConnection sendSynchronousRequest: returningResponse: Fehler: endete Zeit abgelaufen oder anderen Fehler
5
A
Antwort
14
Wenn ein Fehler aufgetreten ist, ist der Fehlerparameter nicht 0, wenn sendSynchronousRequest:returningResponse:error:
zurückgibt.
Sie können den Fehlercode abrufen, indem Sie den von [NSError code]
zurückgegebenen Wert überprüfen. Der Fehlercode für die Zeitüberschreitung ist NSURLErrorTimedOut
.
Zum Beispiel:
NSError *error = nil;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]
if (error.code == NSURLErrorTimedOut) {
// Handle time out here
}
0
Sie können dem Benutzer eine Warnung anzeigen und den Fehlerparameter in sendSynchronousRequest:returningResponse:error:
an die Nachricht senden.
wird der Code so etwas wie dieses:
[NSURLConnection sendSynchronousRequest: req returningResponse: &response error: &error];
if (error)
{
UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
Hoffe, es hilft !!