Проблема с классом NWPathMonitor при изменениях в Интернете
Я использую класс NWPathMonitor для проверки изменений в Интернете. Но у меня возникла проблема при его использовании. Проблема заключается в том, что когда Интернет отключен, и как только он возвращается, monitor.pathUpdateHandler вызывается/уведомляется дважды. Где, как и в случае отсутствия Интернета, он вызывается только один раз. Итак, в чем ошибка, которую я здесь делаю?
Ниже мой фрагмент кода
final class NetworkMonitor {
static let shared = NetworkMonitor()
private let queue = DispatchQueue.global(qos: .background)
private let monitor: NWPathMonitor
private(set) var isConnected = false
private(set) var isExpensive = false
private(set) var currentConnectionType: NWInterface.InterfaceType?
private init() {
monitor = NWPathMonitor()
}
func startMonitoring() {
monitor.pathUpdateHandler = { [weak self] path in
self?.isExpensive = path.isExpensive
self?.currentConnectionType = NWInterface.InterfaceType.allCases.filter { path.usesInterfaceType($0) }.first
NotificationCenter.default.post(name: .connectivityStatus, object: nil)
}
monitor.start(queue: queue)
}
func stopMonitoring() {
monitor.cancel()
}
}
1 ответ
Если вы сохраните NWPath и сравните их.
Вы обнаружите, что пути различны.
Пример:
во-первых.
Во-вторых,.cellular
+.wifi
.