Mi aplicación de iPhone es bastante simple con una vista que maneja todo, en viewDidLoad miro para ver si tenemos una conexión a Internet y si lo hacemos cargamos desde la web y si no cargamos desde un recurso local. Y esto funciona bienEvento de cambio de red de accesibilidad que no se activa
//in viewDidOnload
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleNetworkChange:)
name:kReachabilityChangedNotification object:nil];
reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus status = [reachability currentReachabilityStatus];
if (status == NotReachable) {
//Do something offline
} else {
//Do sometihng on line
}
- (void)handleNetworkChange:(NSNotification *)notice{
NetworkStatus status = [reachability currentReachabilityStatus];
if (status == NotReachable) {
//Change to offline Message
} else {
//Relaunch online application
}
}
Para probar mi caso handleNetworkChange apagué todos los datos celulares pero dejó el wifi sucesivamente. Dentro del alcance del wifi, inicié la aplicación y todo funciona perfecto. Luego salgo del rango del wifi, pero mi handleNetworkChange nunca se dispara (probado usando uiAlertView). De pie fuera del alcance del wifi, mi aplicación lanza el mensaje fuera de línea sin problemas.
Mi sospecha es que se trata de un problema con el ciclo de vida del ViewController, ¿debería colocarse este código en la función de AppDelegate? Posiblemente ese sea un mejor diseño para comenzar.
Creo que la línea NSNotification debe declararse DESPUÉS de que inicie la instancia de accesibilidad. – Raptor