【问题标题】:Connection is always giving me false?连接总是给我假?
【发布时间】:2019-04-03 15:10:49
【问题描述】:

我正在使用 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)
    }

【问题讨论】:

  • connection 永远不会是 .wifi && .cellular。将&& 更改为||

标签: ios swift reachability reachability-swift


【解决方案1】:

Connection 是一个有 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  "            
    }

【讨论】:

    猜你喜欢
    • 2019-04-06
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 2015-03-28
    • 2019-10-11
    • 2020-10-13
    • 1970-01-01
    • 2011-06-20
    相关资源
    最近更新 更多