ios - Swift 中的 AFNetworking 可达性管理器

标签 ios swift afnetworking reachability

在 Swift 中有没有一种方法可以让 AFNetworking Reachability 每秒不断地检查互联网连接,到目前为止,这就是我所拥有的,它只检查一次:

override func viewDidLoad() {
AFNetworkReachabilityManager.sharedManager().startMonitoring()
        AFNetworkReachabilityManager.sharedManager().setReachabilityStatusChangeBlock{(status: AFNetworkReachabilityStatus?) in
            switch status!.hashValue {
            case AFNetworkReachabilityStatus.NotReachable.hashValue:

                print("no internet")
            case AFNetworkReachabilityStatus.ReachableViaWiFi.hashValue,AFNetworkReachabilityStatus.ReachableViaWWAN.hashValue:

                print("with internet")

            default:
                print("unknown")
            }
        }
}

如何持续检查互联网连接?

最佳答案

AFNetworking Reachability 确实持续检查连接,如果我的一些应用程序运行良好,我就会使用它。如果您的代码不起作用,我认为可能是因为您在使用 setReachabilityStatusChangeBlock 设置处理程序之前调用了 startMonitoring,因此您可能会错过初始事件。另外,与你的问题无关,但你可以做出改进,你不需要在 switch 语句中使用 hashValue ,你可以直接使用 status ,你会得到Swift 编译器检查 case 语句是否完成的好处。总之,请尝试以下版本的代码,看看它是否有效:

    AFNetworkReachabilityManager.sharedManager().setReachabilityStatusChangeBlock { (status: AFNetworkReachabilityStatus) -> Void in
        switch status {
        case .NotReachable:
            print("Not reachable")
        case .ReachableViaWiFi, .ReachableViaWWAN:
            print("Reachable")
        case .Unknown:
            print("Unknown")
        }

    }
    AFNetworkReachabilityManager.sharedManager().startMonitoring()

关于ios - Swift 中的 AFNetworking 可达性管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37155389/

相关文章:

ios - 如何在完成数据获取后在 tableView 中使用 UIActivityIndi​​catorView

ios - 使用主体参数进行 API 调用

ios - JSON文本未以AFNetworking的数组错误开头

ios - 我如何知道在 AFNetworking 中是否执行了成功或失败 block

ios - 如何在 Swift 上将 Parse `PFUser` 从 `MapView` 传递(抓取)到另一个 `ViewController`?

ios - 我们可以阻止 ipod 4 代用户查看我们的应用程序吗?

ios - 在 Xcode 6.0 中删除启动屏幕

iOS Firebase 推送通知未出现

ios - 在 for 语句中使用 String.CharacterView.Index.successor()

ios - AFNetworking 仅在请求成功时下载并保存数据