gpt4 book ai didi

swift - 为什么 NWPathMonitor 在路径满足时不提供路径更新?

转载 作者:行者123 更新时间:2023-12-05 09:08:20 27 4
gpt4 key购买 nike

我有一个名为 NetworkPathMonitor 的简单类,如下所示:

class NetworkPathMonitor: ObservableObject, Cancellable {
@Published var path: NWPath? = nil

let monitor = NWPathMonitor()

init() {
monitor.pathUpdateHandler = { [weak self] path in
DispatchQueue.main.async {
self?.path = path
}
}
monitor.start(queue: DispatchQueue.global(qos: .background))
}

func cancel() {
monitor.cancel()
}

deinit {
cancel()
}
}

尽管在我禁用和启用 WiFi 时调用了 pathUpdateHandler,但结果并不总是可靠的。当我禁用 WiFi 时,当前路径是 unsatisfied (No network route),但是当我再次启用 WiFi 时,它再次调用 pathUpdateHandler 并使用相同的路径 unsatisfied (No网络路由)

但是在我的用户界面中,我有一个显示重试的按钮。当我按下它时,它会破坏当前的监视器并构建一个新的。第一条消息现在显示 satisfied(路径已满足),interface: en0。意思是,WiFi 建立网络路由可能需要一些时间,但当网络可用时,它不会再次调用 pathUpdateHandler

最佳答案

代码确实在真实设备上运行。

不要在 iOS 模拟器上测试 NWPathMonitor,因为它不会给你一个可靠的结果。

关于swift - 为什么 NWPathMonitor 在路径满足时不提供路径更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63617783/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com