gpt4 book ai didi

ios - 如何在 Alamofire 中使用 NetworkReachabilityManager

转载 作者:IT王子 更新时间:2023-10-29 05:11:38 28 4
gpt4 key购买 nike

我想要在 Objective-C 中使用类似于 AFNetworking 的功能,在 Swift 中使用 Alamofire NetworkReachabilityManager:

//Reachability detection
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusReachableViaWWAN: {
[self LoadNoInternetView:NO];
break;
}
case AFNetworkReachabilityStatusReachableViaWiFi: {
[self LoadNoInternetView:NO];
break;
}
case AFNetworkReachabilityStatusNotReachable: {
break;
}
default: {
break;
}
}
}];

我目前正在使用监听器来了解状态随网络的变化

let net = NetworkReachabilityManager()
net?.startListening()

有人可以描述如何支持这些用例吗?

最佳答案

NetworkManager 类

class NetworkManager {

//shared instance
static let shared = NetworkManager()

let reachabilityManager = Alamofire.NetworkReachabilityManager(host: "www.google.com")

func startNetworkReachabilityObserver() {

reachabilityManager?.listener = { status in
switch status {

case .notReachable:
print("The network is not reachable")

case .unknown :
print("It is unknown whether the network is reachable")

case .reachable(.ethernetOrWiFi):
print("The network is reachable over the WiFi connection")

case .reachable(.wwan):
print("The network is reachable over the WWAN connection")

}
}

// start listening
reachabilityManager?.startListening()
}
}

启动网络可达性观察器

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

// add network reachability observer on app start
NetworkManager.shared.startNetworkReachabilityObserver()

return true
}
}

关于ios - 如何在 Alamofire 中使用 NetworkReachabilityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35427698/

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