ios - 如何检查 ios 设备何时失去与互联网的连接

标签 ios swift reachability

如何尽快检测到丢失的网络连接

现在我正在使用 swift 的 reachabitity 框架,它需要大约 3 秒才能检测到没有网络,因此用户可以使应用程序崩溃

我是这样检查的:

func setupReachability() {
    do {
        self.reachability = try Reachability.reachabilityForInternetConnection()
    } catch {
        print("Cannot setup reachability monitoring")
        return
    }

    self.reachability!.whenReachable = { reachability in
        self.loginButton(true)
    }
    self.reachability!.whenUnreachable = { reachability in
        self.loginButton(false)
    }

    do { try self.reachability!.startNotifier() } catch {
        print("Cannot start reachability monitoring")
        return
    }

    print("Started reachability")
}

最佳答案

你总是,总是,必须处理连接中的错误。您绝对不能依赖可达性。您也不能相信您的连接会转到您想要连接的服务器。您从完全不同的服务器以与您预期完全不同的格式收到回复是可能的并且实际上发生了很多,您需要处理这种情况。 (将您的应用程序带到最近的星巴克并检查它是否存活)。

关于ios - 如何检查 ios 设备何时失去与互联网的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714734/

相关文章:

iOS:当我尝试插入 "int"值时出现 NSUserDefaults 警告

Swift:如何使用 PREPROCESSOR 标志(如 `#if DEBUG` )来实现 API key ?

ios - 通知哪个调用是在与可达性无关的情况下进行的

iphone - 检查是否有活跃的互联网连接 iPhone 情况

iphone - 在 iOS 设备上截屏时如何修复丢失的 "blocks"数据?

ios - Swift 中的自定义导航栏

ios - 如何使用点击手势 (iOS8/Swift) 在 pageViewController 上显示/隐藏状态栏

swift - iOS 8 高度约束动画未按预期工作

ios - Reachability reachable和unreachableBlock被多次调用?

ios - 外部常量 - 在类型的对象上找不到属性