2010-02-14 3 views
0

Tout nouveau dans la programmation réseau et surtout dans la mise en réseau de l'objectif-c ...
Même si j'éteins l'interface réseau de mon ordinateur ou si mon iPhone est en mode veille, NSURLConnection ne retournera pas avec la surprise désagréable que l'application meurt.nsurlconnecion ne retourne pas nul même si le réseau est en panne

Je me conforme au protocole NSURLConnection avec toutes les méthodes de rappel correctes ...

Alors, comment voulez-vous gérer le cas où le client n'a pas de connexion Internet?

extrait de code que je poste les données de connexion à un serveur:

-(void)Login { 
    ... 
    NSURLConnection *theConnection = [NSURLConnection connectionWithRequest:post delegate:self]; 
    if (theConnection==nil) { 
     //Here I want to show an alert but this case never happens.... 
    } 
    else { 
     receivedData=[[NSMutableData data] retain]; 
    } 
} 
... 


//This callback is called correctly but no alert shows up and after this method app dies. 

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { 
    [connection release]; 
    [receivedData release]; 
    [self setLoggedIn:NO]; 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
               message:[error localizedDescription] 
               delegate:self 
               cancelButtonTitle:@"OK" 
               otherButtonTitles: nil]; 
    [alert show]; 
    [alert release]; 
} 

Répondre

2

Votre application se bloque probablement parce que vous publiez l'objet de connexion, même si vous ne possédez pas. Supprimez [connection release]; de la méthode déléguée.

+0

... et le prix Nobel pour &/€ "& /" #% & va à moi ... Thanx! – niel41

Questions connexes