互联网连接状态快速可达

Ahm*_*med 3 connection reachability ios swift reachability-swift

我有以下代码来确定是否有互联网连接。这段代码工作正常。我如何知道我是否突然失去连接

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

可达性类是否具有报告连接是否断开的功能。如果无法解决可达性问题,其他选择是什么

Sh_*_*han 6

在 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")
}
Run Code Online (Sandbox Code Playgroud)

//

当状态改变时调用此方法

@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")
    }
}
Run Code Online (Sandbox Code Playgroud)

//

为了避免崩溃,不要忘记取消注册

reachability.stopNotifier()
NotificationCenter.default.removeObserver(self, name: .reachabilityChanged, object: reachability)
Run Code Online (Sandbox Code Playgroud)