Swift 利用Reachability监测网络连接

<pre>
class ReachabilityHelper {
static func reach(_ reachable: @escaping (_ wifi:Bool) -> Void, unreachable: @escaping () -> Void) {

    let reachability = Reachability()!
    
    reachability.whenReachable = { reachability in
        // this is called on a background thread, but UI updates must
        // be on the main thread, like this:
       DispatchQueue.main.async {
            if reachability.isReachableViaWiFi {

// print("Reachable via WiFi")
reachable(true)
} else {
// print("Reachable via Cellular")
reachable(false)
}

        }
    }
    reachability.whenUnreachable = { reachability in
        // this is called on a background thread, but UI updates must
        // be on the main thread, like this:
        DispatchQueue.main.async {

// print("Not reachable")
unreachable()
}

    }
    
    do {
        try reachability.startNotifier()
    } catch {

// print("Unable to start notifier")
}
}

}
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 监测网络连接状态的必要性: iOS平台是按照一直有网络连接的思路来设计的,开发者利用这一特点创造了很多优秀的第三方...
    零距离仰望星空阅读 9,786评论 9 16
  • 通过写来觉察: 1、 发生的事件 2、 你的身体反应:把注意力放在身体反应最明显的地方,回到当时的事件中,去感觉当...
    秦晴本体能量学阅读 476评论 0 0
  • 感恩今天是个好天气 感恩婆婆早早起床,和我说要吃早餐,她去拜佛诚心。 感恩我们的如霞姐有心早早就连线我,让我有机会...
    生活就该甜甜蜜蜜阅读 195评论 2 2
  • 六月微尘阅读 273评论 5 4
  • Linux 是一个多用户分时系统,想要使用系统资源,就必须在系统中有合法的账号,每个账号都有一个唯一的用户名,同时...
    苏近之2017阅读 556评论 0 0