【问题标题】:Issue with NWPathMonitor class on internet changesNWPathMonitor 类在 Internet 更改时出现问题
【发布时间】:2023-01-03 16:19:42
【问题描述】:

我正在使用NWPathMonitor检查互联网变化的类。但是我在使用它时遇到了问题。问题是当互联网关闭时,一旦它回来,监视器.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()
    }
}

【问题讨论】:

    标签: ios swift reachability nwpathmonitor


    【解决方案1】:

    根本原因: NWPath 是这些路径之间的区别。

    前任:
    首先是.cellular
    第二个是.cellular + .wifi

    【讨论】:

      猜你喜欢
      • 2016-01-25
      • 2015-08-26
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多