网络可达性状态没有改变



我有一个AFNetworking设置来监视网络可达性状态,这样当它变得可用时,我可以立即进行一个REST调用,当它没有失败时。

我发现它没有告诉我状态的变化,然而。我在我的Mac上模拟100%的损失,在那些时候,对REST API的调用将失败,但AFNetworking的可达性状态为availableViewWWAN。然后,当我关闭100%损失时,REST调用再次工作,但根据AFNetworking的状态没有改变。

这是我现在使用的代码:

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)")
        }
    }
}

这是因为100%的损失情况并不等于根本没有连接。100% loss表示所有的数据包被丢弃,但网络连接仍然存在,当您想要模拟超时连接时,它很有用。

为了模拟无网络的情况,你应该关闭你的mac或iDevice上的wifi连接,对于模拟器或物理设备

最新更新