iOS / iPhone SDK: ¿Hay algún evento para cuando se pierde / retrocede la networking?

Me gustaría hacer algún tratamiento cuando pierdo la connection, y cuando la connection vuelve. ¿Hay algún evento para manejarlo?

Gracias por adelantado,

MI.

Debe usar buenas prácticas usadas en ASIHTTPRequest . Utilizan Reachability, que es como dicen una caída en reemploop de la class desarrollada por Apple . Espero que sea de ayuda.

Un enfoque estándar es usar Reachability para probar la disponibilidad de la networking. Se puede download aquí . Solo necesita Reachability.h y Reachability.m en su proyecto.

Mi preference personal es hacer lo siguiente:

1 Agregue los files de alcanzabilidad

2 Cree properties BOOL para cada testing de networking que desee recordar / exponer en su proyecto: tengo una testing para google y una testing para google maps a continuación.

3 En su método appDidFinishLoading, invoque [self assertainNetworkReachability].

#pragma mark - #pragma mark Reachability -(void)assertainNetworkReachability { [self performSelectorInBackground:@selector(backgroundReachabilityTests) withObject:nil]; } -(void)backgroundReachabilityTests { self.isInternetReachable = [self internetReachable]; self.isMapsReachable = [self mapsReachable]; self.connectivityTimer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(backgroundReachabilityTests) userInfo:nil repeats:NO]; } -(BOOL)hostReachable:(NSString*)host { Reachability *r = [Reachability reachabilityWithHostName:host]; NetworkStatus internetStatus = [r currentReachabilityStatus]; if(internetStatus == NotReachable) { [self throwNetworkDiagnosisAlert]; return NO; } return YES; } -(BOOL)internetReachable { return [self hostReachable:@"www.google.co.uk"]; } -(BOOL)mapsReachable { return [self hostReachable:@"maps.google.com"]; } -(BOOL)isInternetGoodYetMapsUnreachable { return (self.isInternetReachable && !self.isMapsReachable); } -(void)throwNetworkDiagnosisAlert { NSString* title = @"Connectivity Problem"; NSString* message = @"You are not connected to the internet."; if (self.isInternetGoodYetMapsUnreachable) { message = @"Unable to connect to the Google Maps server."; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil]; [alert show]; [alert release]; }