在 Swift 中有没有一种方法可以让 AFNetworking
Reachability 每秒不断地检查互联网连接,到目前为止,这就是我所拥有的,它只检查一次:
override func viewDidLoad() {
AFNetworkReachabilityManager.sharedManager().startMonitoring()
AFNetworkReachabilityManager.sharedManager().setReachabilityStatusChangeBlock{(status: AFNetworkReachabilityStatus?) in
switch status!.hashValue {
case AFNetworkReachabilityStatus.NotReachable.hashValue:
print("no internet")
case AFNetworkReachabilityStatus.ReachableViaWiFi.hashValue,AFNetworkReachabilityStatus.ReachableViaWWAN.hashValue:
print("with internet")
default:
print("unknown")
}
}
}
如何持续检查互联网连接?
最佳答案
AFNetworking Reachability 确实持续检查连接,如果我的一些应用程序运行良好,我就会使用它。如果您的代码不起作用,我认为可能是因为您在使用 setReachabilityStatusChangeBlock
设置处理程序之前调用了 startMonitoring
,因此您可能会错过初始事件。另外,与你的问题无关,但你可以做出改进,你不需要在 switch 语句中使用 hashValue
,你可以直接使用 status
,你会得到Swift 编译器检查 case
语句是否完成的好处。总之,请尝试以下版本的代码,看看它是否有效:
AFNetworkReachabilityManager.sharedManager().setReachabilityStatusChangeBlock { (status: AFNetworkReachabilityStatus) -> Void in
switch status {
case .NotReachable:
print("Not reachable")
case .ReachableViaWiFi, .ReachableViaWWAN:
print("Reachable")
case .Unknown:
print("Unknown")
}
}
AFNetworkReachabilityManager.sharedManager().startMonitoring()
关于ios - Swift 中的 AFNetworking 可达性管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37155389/