![](/img/trans.png)
[英]Checking for Network connection with Reachability - IsWWAN flag always 'false'
[英]Connection is always giving me false?
我正在使用Reachability.swift來測試Internet連接(關閉/打開)並且服務器處於(活動/死機)服務器檢查正常,但是Internet Connection總是給我錯誤?
@IBAction func TestNetwork(_ sender: Any) {
var internetConnection = "❌"
var serverStatus = "❌"
var message = " \(internetConnection) internet connection \n \(serverStatus) MHS server\n "
let reachability = Reachability(hostname:"google.com")
if (reachability?.connection != .none ) {
serverStatus = "✅"
message = " \(internetConnection) internet connection \n \(serverStatus) goole server\n "
} else {
serverStatus = "❌"
message = " \(internetConnection) internet connection \n \(serverStatus) google server\n "
}
if (reachability?.connection == .wifi && reachability?.connection == .cellular) {
internetConnection = "✅"
message = " \(internetConnection) internet connection \n \(serverStatus) google server\n "
} else {
internetConnection = "❌"
message = " \(internetConnection) internet connection \n \(serverStatus) google server\n "
}
let alertController = UIAlertController(title: "Alert", message: message, preferredStyle: .alert)
let defaultAction = UIAlertAction(
title: "OK", style: .default, handler: nil)
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
}
連接是一個枚舉,包含3種情況:
enum Connection {
case none, wifi, cellular
}
由於您的reachability?.connection
只能是其中之一,因此您需要將檢查從&&
更改為||
。
更改:
if (reachability?.connection == .wifi && reachability?.connection == .cellular) {
internetConnection = "✅"
message = " \(internetConnection) internet connection \n \(serverStatus) google server\n "
}
至:
if (reachability?.connection == .wifi || reachability?.connection == .cellular) {
internetConnection = "✅"
message = " \(internetConnection) internet connection \n \(serverStatus) google server\n "
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.