Swift 3从按钮到达
问题描述:
我在github上使用了可达性库,发现here。我想通过点击一个按钮来检查设备是否在线。我对Reachability很陌生,因此从我看到的情况来看,您必须开始聆听变化,然后测试连接,然后停止收听。到目前为止,我已经在我的按钮动作中做到了这一点,但是当我点击按钮时,没有任何东西被打印到控制台。Swift 3从按钮到达
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()
答
你,因为使用隐式展开可选的有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()
当一旦打印出“通过WiFi可达”按钮,我就点击了按钮,但如果再次单击按钮,则什么都不会发生。只能检查一次可达性吗? – Martheli
@Martheli,尝试更新代码。 –
工作。为什么这个版本能工作,但我的原始版本只打印一次? – Martheli