Swift 3 按钮的可达性

Swift 3 Reachability From Button

我正在 github 上使用可达性库 here。我想通过单击按钮来检查设备是否在线。我是 Reachability 的新手,所以据我所知,您必须开始监听更改,然后测试连接,然后停止监听。到目前为止,我的按钮操作中有这个,但是当我单击按钮时,没有任何内容打印到控制台。

var reachability: Reachability!
do {
    try reachability?.startNotifier()
} catch {
    print("Unable to start notifier")
}


reachability?.whenReachable = { reachability in

    DispatchQueue.main.async {
        if reachability.isReachableViaWiFi {
            print("Reachable via WiFi")
        } else {
            print("Reachable via Cellular")
        }
    }
}


reachability?.whenUnreachable = { reachability in

    DispatchQueue.main.async {
        print("Not reachable")
    }
}


reachability?.stopNotifier()

reachability?.stopNotifier() 放在主线程块中

你得到了 nil 因为使用隐式解包可选。

替换,

var reachability: Reachability!

let reachability = Reachability()

试试下面,

let reachability = Reachability()

do {
    try reachability?.startNotifier()
} catch {
    print("Unable to start notifier")
}


if reachability?.isReachable == true{

    if reachability?.isReachableViaWiFi == true{
        print("Reachable via WiFi")
    } else if reachability?.isReachableViaWWAN == true{
        print("Reachable via WWAN simulator")
    }else{
        print("Reachable via Cellular")
    }

}else{
    print("Not reachable")
}


reachability?.stopNotifier()