AFNetworking Reachability no reconoce la connection a internet por primera vez

Estoy usando AFNetworking Reachability en pocas vistas en esta aplicación. En una vista, hay un problema extraño. En todas las vistas, comencé a monitorear en loadView : [[AFNetworkReachabilityManager shanetworkingManager] startMonitoring] , y llamar a isReachable en viewDidLoad : if([AFNetworkReachabilityManager shanetworkingManager].isReachable) .

Cada vez, devuelve NO, como que no hay connection a Internet, y estoy bastante seguro de que tengo conexiones inalámbricas estables (trabajando en otras vistas).

En el marco de startMonitoring método startMonitoring se ejecuta en Background global queue .

En su caso, el método ViewDidLoad se llama antes de completar el método startMonitoring porque se ejecuta en queue diferente.

Entonces, en vez de verificar el indicador isReachable , use isReachable como sigue

 [[AFNetworkReachabilityManager shanetworkingManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusNotReachable: break; case AFNetworkReachabilityStatusReachableViaWiFi: break; case AFNetworkReachabilityStatusReachableViaWWAN: break; default: NSLog(@"Unkown network status"); } }]; [[AFNetworkReachabilityManager shanetworkingManager] startMonitoring]; 

[AFNetworkReachabilityManager shanetworkingManager] es un singleton y se inicializa cuando haces una llamada por primera vez, y se mantendrá mientras la aplicación esté en vivo.

También se necesita algo de time para comprobar si la isReachable ethernet / wifi es isReachable .

Entonces puedes poner este código:

 [[AFNetworkReachabilityManager shanetworkingManager] startMonitoring]; 

a AppDelegate y simplemente revise la connection Ethernet siempre que lo necesite.