Necesito ayuda con Reachability (2.0.3ddg)

Cuando se inicia mi aplicación, compruebo la accesibilidad porque necesito una conexión a Internet inmediata. Mi problema, sin embargo, es que parece que no hay confirmación inmediata para elNetworkStatus, lo que significa que justo después de que se haya configurado la capacidad de alcance, compruebo si hay una conexión y devuelve que no la hay, independientemente de si estoy de hecho en WiFi / 3G, o si he apagado la radio.

Puedo confirmar que de hecho estoy obteniendo una conexión a Internet, porque inmediatamente después de la aplicaciónDidFinishLaunching, hay una notificación que luego registra "ReachableViaWiFi" ...

¿Qué estoy haciendo mal? ¿Por qué no está confirmando una conexión a Internet válida de inmediato?

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    NetworkStatus netStatus = [hostReach currentReachabilityStatus];
    if (netStatus == NotReachable) {
        ErrorViewController *errorViewController = [[ErrorViewController alloc] initWithNibName:@"ErrorView" bundle:[NSBundle mainBundle]];
        [tabBarController.view removeFromSuperview];
        [window addSubview:[errorViewController view]];
        return;
    }
}

-(void)setupReachability {
    [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name:kReachabilityChangedNotification object: nil];
    hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];
    [hostReach startNotifier];
}

-(void)reachabilityChanged:(NSNotification *)notification {
    Reachability* curReach = [notification object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    NetworkStatus netStatus = [curReach currentReachabilityStatus];
    BOOL connectionRequired = [curReach connectionRequired];
    switch (netStatus)
    {
        case NotReachable:
        {
            [[NSUserDefaults standardUserDefaults] setInteger:kNOTREACHABLE forKey:kREACHABILITYSTATUS];
            NSLog(@"NotReachable");
            connectionRequired = NO;  
            break;
        }

        case ReachableViaWWAN:
        {
            [[NSUserDefaults standardUserDefaults] setInteger:kREACHABLEVIAWWAN forKey:kREACHABILITYSTATUS];
            NSLog(@"ReachableViaWWAN");
            break;
        }
        case ReachableViaWiFi:
        {
            [[NSUserDefaults standardUserDefaults] setInteger:kNOTREACHABLE forKey:kREACHABILITYSTATUS];
            NSLog(@"ReachableViaWiFi");
            break;
        }
    }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta