我最近从AFNetworking 4升级到了5。
这是初始化监听程序的旧方法:
let net = NetworkReachabilityManager()
net?.listener = { status in
if net?.isReachable ?? false {
switch status {
case .reachable(.ethernetOrWiFi):
print("The network is reachable over the WiFi connection")
case .reachable(.wwan):
print("The network is reachable over the WWAN connection")
case .notReachable:
print("The network is not reachable")
case .unknown :
print("It is unknown whether the network is reachable")
}
}
net?.startListening()新文档是这样写的:
@discardableResult
open func startListening(onQueue queue: DispatchQueue = .main,
onUpdatePerforming listener: @escaping Listener) -> Boolhttps://alamofire.github.io/Alamofire/Classes/NetworkReachabilityManager.html
在我的代码中,我尝试这样做:
let listener = NetworkReachabilityManager.Listener()
self.reachabilityManager?.startListening(onUpdatePerforming: listener){
}我得到的编译错误是Extra argument 'onUpdatePerforming' in call。这是一个语法问题,我正在从Objective C过渡到Swift。
当我试图传递一个闭包时,我似乎也不能得到正确的语法:
self.reachabilityManager?.startListening(onUpdatePerforming: { (NetworkReachabilityManager.Listener) in
})发布于 2019-10-04 23:49:08
Listener只是期望的闭包类型的typealias,所以你需要传递一个闭包。
self.reachabilityManager?.startListening { status in
switch status {
...
}
}发布于 2019-10-07 09:59:59
以下是在AFNetworking更新后运行的代码:
self.reachabilityManager?.startListening(onUpdatePerforming: {networkStatusListener in
print("Network Status Changed:", networkStatusListener)
switch networkStatusListener {
case .notReachable:
self.presentAlert(message: "The network is not reachable. Please reconnect to continue using the app.")
print("The network is not reachable.")
case .unknown :
self.presentAlert(message: "It is unknown whether the network is reachable. Please reconnect.")
print("It is unknown whether the network is reachable.")
case .reachable(.ethernetOrWiFi):
print("The network is reachable over the WiFi connection")
case .reachable(.cellular):
print("The network is reachable over the WWAN connection")
}
})https://stackoverflow.com/questions/58238950
复制相似问题