Связь всегда дает мне ложь? - PullRequest
0 голосов
/ 03 апреля 2019

Я использую Reachability.swift для проверки интернет-соединения (выкл. / Вкл.), А сервер (в реальном времени / мертвый), проверка сервера работает нормально, но интернет-соединение всегда дает мне false?

   @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)
    }

1 Ответ

1 голос
/ 03 апреля 2019

Соединение - это перечисление с 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  "            
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...