AFNetworking 可达性状态未更改

AFNetworking reachability status not changing

我有 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 连接,用于模拟器或物理设备。