Проблема с классом 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.

Другие вопросы по тегам