我正在使用Reachability.swift测试互联网连接是(关/开)和服务器是(实时/死)服务器检查工作正常但是互联网连接总是给我错误?
@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 "
}