AFNetworking accesibilidad para la dirección IP en Swift – siempre coincidiendo con la accesibilidad general?

Necesito ayuda para entender por qué estoy viendo lo siguiente.

AFNetworking 3.0.4 en iOS9.x

Si agarro al administrador de accesibilidad con

 AFNetworkReachabilityManager.shanetworkingManager() 

y luego agrego un setReachabilityStatusChangeBlock y luego obtengo exactamente lo que espero.

  • Modo de avión: NotReachable
  • Wi-Fi apagado: ReachableViaWWAN
  • Wi-Fi en: ReachableViaWiFi

Entonces, el caso general está funcionando como se esperaba.

Pero me gustaría ser más preciso, sabemos cuál es la dirección IP con la que hablamos, por lo que me gustaría utilizar managerForAddress . Aquí está el código que he cargado desde la networking (la mayoría de los ejemplos son para obj-c no veloz) – en lo siguiente – ip es una cadena de la dirección (forma cuadrada punteada):

 let isLittleEndian = Int(OSHostByteOrder()) == OSLittleEndian let htons = isLittleEndian ? _OSSwapInt16 : { $0 } var address = sockaddr_in() address.sin_len = UInt8(sizeofValue(address)) address.sin_family = sa_family_t(AF_INET) address.sin_port = htons(443); address.sin_addr.s_addr = inet_addr(ip); addressReachability = withUnsafePointer(&address) { AFNetworkReachabilityManager(forAddress: UnsafePointer($0)) } 

Luego puedo agregar un setReachabilityStatusChangeBlock a este administrador y comenzar a supervisar.

Ahora, no importa lo que envíe como IP: una cadena vacía, una dirección IP válida en la que 443 está escuchando, una dirección IP válida en la que 443 no está escuchando, una dirección IP no válida, los resultados coinciden exactamente con los del administrador compartido – si estoy en Wi-Fi, entonces es ReachableViaWiFi , si solo estoy en 4G, entonces es ReachableViaWWAN , si estoy en modo avión, es NotReachable .

Entonces, o he entendido mal cómo se utiliza managerForAddress o tengo un error de código 🙂 En cualquier caso, me encantaría escuchar lo que he entendido mal o me equivoqué.