And*_*rea 17 networking detection ios 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()
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么.unsatisfied
在这两种情况下都调用互联网连接
模拟器无法准确地将网络更改传输到应用程序。
根据我的经验,它将是您在启动时运行 Xcode 的设备的网络状态,并且仅当您从有连接(满意)到没有连接(不满意)时才会更新自己,但反之则不然。
由于此限制,您需要在真实设备上测试网络。
归档时间: |
|
查看次数: |
2053 次 |
最近记录: |