iOS swift 4 Добавьте прослушиватель уведомлений о состоянии сетевого подключения из любого класса - PullRequest
0 голосов
/ 02 мая 2018

Я использую ashleymills / Reachability.swift для проверки состояния сетевого подключения. Когда я использую его в определенном классе в методе viewWillAppear, он работает просто отлично. Но в настоящее время у меня более 40 классов, и я не думаю, что мне нужно реализовывать прослушиватель уведомлений в каждом из них. Итак, я пытался запустить его методом AppDelegate application didFinishLaunchingWithOptions. Я пытался для одного класса, например, если у меня есть класс с именем DashboardVC , я написал:

var reachability = Reachability()!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let vc = DashboardVC()
Notificationcenter.default.addObserver(vc, selector: #selector(reachabilityDidChange(notification:)), name: .reachabilityChanged, object: nil)
return true
}

И функция reachabilityDidChange (уведомление:) :

func reachabilityDidChange(notification: Notification) {

let reachability1 = notification.object as! Reachability  
switch reachability1.connection {  
case .wifi:      
   print("Reachable via WiFi")  
case .cellular:      
   print("Reachable via Cellular")  
case .none:    
   print("Network not reachable")  }
}

Но это не сработало, когда я включил / выключил интернет-соединение или переключился с Wi-Fi на сотовую сеть, когда DashboardVC был topmostViewController. Пожалуйста, помогите мне:

  1. Если есть способ достичь моей цели с помощью ashleymills / Reachability.swift
  2. Если есть способ достичь этого без ashleymills / Reachability.swift
  3. Если есть какой-либо другой способ отслеживать состояние сетевого подключения

Привет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...