ios - NWPathMonitor 在 Swift 中调用不满意
问题描述
我NWPathMonitor
用来检测互联网连接何时打开和关闭。当两种状态都发生时,该方法被调用,但是当互联网连接打开时,被调用的状态仍然是.unsatisfied
而不是.satisfied
. 这是我正在使用的课程:
import Network
protocol NetworkCheckDelegate {
func statusDidChange(status: NWPath.Status)
}
class NetworkCheck {
private var monitor = NWPathMonitor()
private static let _sharedInstance = NetworkCheck()
var networkCheckDelegate: NetworkCheckDelegate?
class func sharedInstance() -> NetworkCheck {
return _sharedInstance
}
// Create only one instance of NetworkCheck
private init() {
monitor.pathUpdateHandler = { path in
DispatchQueue.main.async(execute: {
self.networkCheckDelegate?.statusDidChange(status: path.status)
})
}
monitor.start(queue: DispatchQueue.global(qos: .background))
}
func removeMonitoring() {
monitor.cancel()
}
}
我的问题是:为什么.unsatisfied
在这两种情况下都调用互联网连接
解决方案
模拟器无法准确地将网络更改传输到应用程序。
以我的经验,它将是您在启动时运行 Xcode 的设备的网络状态,并且仅当您从有连接(满意)变为没有(不满意)时才更新自身,而不是相反。
由于此限制,您需要在真实设备上测试网络。
推荐阅读
- typescript - 解释编译打字稿时使用的库
- html - 重新排序段落文本的CSS规则
- reactjs - 如何使按钮在ReactJS中鼠标悬停在图像上
- python - 从 Linux 终端执行包含子进程的 PyQt5 GUI 会导致 GUI 出现黑屏并冻结它
- android - 当 toast.view.background 为空时如何自定义 Toast 背景颜色?
- swift - Swift - 具有不同值的重复键
- mysql - MySql,即使使用 LEFT 连接,where 子句也会过滤掉条目
- python - Wagtail:如何覆盖默认的 ImageEmbedHandler?
- spring - 在日志中打印 Spring Schedule 信息
- graphql - Gatsby Graphql 阅读图片