¿Cómo usar AFNetworkReachabilityManager para monitorear la dirección IP?

Actualmente tengo mi aplicación apuntando a una dirección IP no pública específica (172.16.214.214:44321), cuando estoy en wifi en el trabajo, que la dirección IP se correlaciona con un service que estoy haciendo un prototipo. Configuré un singleton AFNetworkReachabilityManager como tal:

 + (AFNetworkReachabilityManager*) probe { static AFNetworkReachabilityManager* probe = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ struct sockaddr_in serverAddr; serverAddr.sin_family = AF_INET; serverAddr.sin_len = sizeof(serverAddr); serverAddr.sin_port = htons(44321); serverAddr.sin_addr.s_addr = inet_addr("172.16.214.214"); probe = [AFNetworkReachabilityManager managerForAddress:&serverAddr]; }); return probe; } 

Lo comienzo en mi AppDelegate:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[HttpConnection probe] startMonitoring]; NSLog(@"reachable 0: %hhd", [HttpConnection probe].reachable); NSLog(@"reach status 0: %d", [HttpConnection probe].networkReachabilityStatus); ... 

Como era de esperar, esas declaraciones escupen 0 y -1, respectivamente.

Con solo presionar un button, hago las mismas NSLog() . Parece que la actualización asincrónica de esos valores ocurre bastante rápido. Pero los valores no siempre son lo que espero.

Si tengo la connection wifi de mi teléfono, obtengo 1 (es decir, reachable == YES ) y 2 (es decir, networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWiFi ). Esto tiene sentido para mí.

Pero si tengo el wifi del teléfono apagado, obtengo 1 (es decir, reachable == YES ) y 1 (es decir, networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWWAN ). Esto no tiene sentido para mi. Si ejecuto mis otras consultas, con el time las cosas quedan fuera de curso. Entonces, ¿por qué me mentiste el gerente de accesibilidad?

¿Estoy configurando algo mal? ¿O es mi comprensión de cómo usar esta cosa defectuosa?