Быстрая доступность статуса подключения к Интернету - PullRequest
0 голосов
/ 28 мая 2018

У меня есть следующий код, чтобы определить, есть ли подключение к интернету или нет.Этот код работает нормально.Как я могу узнать, внезапно ли я потерял соединение

  var reachability:Reachability?
  reachability = Reachability()
  self.reachability  = Reachability.init()
    if((self.reachability!.connection) != .none)
    {
        print("Internet available")
    }

Имеет ли класс достижимости функцию, которая сообщает о разрыве соединения.Если нет способа справиться с этой проблемой с помощью достижимости, каков другой вариант

1 Ответ

0 голосов
/ 28 мая 2018

Объявите это в AppDelegate / Vc

let reachability = Reachability()!

NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged(note:)), name: .reachabilityChanged, object: reachability)
do{
  try reachability.startNotifier()
}catch{
  print("could not start reachability notifier")
}

//

при изменении статуса этот метод называется

@objc func reachabilityChanged(note: Notification) {

   let reachability = note.object as! Reachability

    switch reachability.connection {
     case .wifi:
         print("Reachable via WiFi")
     case .cellular:
         print("Reachable via Cellular")
     case .none:
         print("Network not reachable")
    }
}

//

чтобы избежать сбоев не забудьте отменить регистрацию

reachability.stopNotifier()
NotificationCenter.default.removeObserver(self, name: .reachabilityChanged, object: reachability)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...