2016-08-23 1 views
1

J'ai une configuration AFNetworking pour surveiller l'état d'accessibilité du réseau, de sorte que quand il devient disponible, je peux immédiatement faire un appel REST qui aurait échoué alors qu'il ne l'était pas.AFLe statut d'accessibilité réseau ne change pas

J'ai cependant constaté qu'il ne me parle pas de changements d'état. Je simule une perte de 100% sur mon Mac, et pendant ce temps, les appels à l'API REST échoueraient, mais AFNetworking aurait son statut d'accessibilité comme availableViewWWAN. Ensuite, lorsque j'éteins la perte de 100%, les appels REST fonctionnent à nouveau, mais le statut selon AFNetworking n'a pas changé.

C'est le code que je utilise avec elle en ce moment:

import AFNetworking 

class ConnectionManager { 
    static let sharedManager = ConnectionManager() 
    init() { 
     AFNetworkReachabilityManager.sharedManager().startMonitoring() 
     AFNetworkReachabilityManager.sharedManager().setReachabilityStatusChangeBlock() { 
      (status: AFNetworkReachabilityStatus) -> Void in 
      print("reachability status changed: \(status.rawValue)") 
     } 
    } 
} 

Répondre

2

En effet, une situation de perte de 100% ne correspond pas à ne pas une connexion à tous. 100% de perte signifie que tous les paquets sont supprimés mais que la connexion réseau existe toujours, c'est utile lorsque vous voulez simuler une connexion de timeout.

Afin de simuler le cas de non réseau, vous devez désactiver votre connexion wifi sur votre mac ou iDevice, pour simulateur ou périphérique physique.