Я использую 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
.
Пожалуйста, помогите мне:
- Если есть способ достичь моей цели с помощью ashleymills / Reachability.swift
- Если есть способ достичь этого без ashleymills / Reachability.swift
- Если есть какой-либо другой способ отслеживать состояние сетевого подключения
Привет!