我正在使用ashleymills/Reachability.swift检查网络连接状态。当我在方法中的特定类中使用它时viewWillAppear
,它工作得很好。但目前我有超过 40 个类,我认为我不需要在每个类中实现通知侦听器。所以,我一直在尝试以AppDelegate
'sapplication 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(notification:)函数:
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") }
}
但是当我在DashboardVC是topmostViewController
. 请帮我:
- 如果有办法通过ashleymills/Reachability.swift实现我的目标
- 如果有办法在没有ashleymills/Reachability.swift的情况下实现这一目标
- 如果有任何其他方法可以跟踪网络连接状态
问候!