gpt4 book ai didi

swift - 调用 localizedNetworkReachabilityStatusString 后状态未知

转载 作者:行者123 更新时间:2023-11-28 07:40:00 24 4
gpt4 key购买 nike

我需要将网络状态发送到某个分析服务器,因此我需要在应用程序启动后发送它。我尝试使用 Alamofire,但我通常会得到未知状态,如果有某种延迟,它会显示正确的状态:这些代码将在我的 AppDelegate (didFinishLaunchingWithOptions) 中运行:

AFNetworkReachabilityManager.shared().startMonitoring()
AFNetworkReachabilityManager.shared().localizedNetworkReachabilityStatusString()

立即获得正确状态的最佳方法是什么?

更新 1:

我更新了代码并尝试使用完成处理程序,但为什么当我使用此方法时它会打印多个 YES?

connectedCompletionBlock({ connected in

if connected {
print("YES")
} else {
print("NO")
}

})


class func connectedCompletionBlock(_ completion: @escaping (_ connected: Bool) -> Void) {

AFNetworkReachabilityManager.shared().startMonitoring()

AFNetworkReachabilityManager.shared().setReachabilityStatusChange({ status in

var isConnected = false
let wifi = AFNetworkReachabilityStatus.reachableViaWiFi
let wwan = AFNetworkReachabilityStatus.reachableViaWWAN

if ( status == wifi || status == wwan) {
con = true
}

AFNetworkReachabilityManager.shared().stopMonitoring()
completion(isConnected)


})
}

最佳答案

好的,既然没有人回答,我认为与您分享解决方案是件好事。问题是这样的:我在 didFinishLaunchingWithOptions 上调用这个方法,因为 Alamofire 需要一些时间来确定连接状态,它会返回未知!我在 applicationDidBecomeActive 上调用它,现在它工作正常。

关于swift - 调用 localizedNetworkReachabilityStatusString 后状态未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52546991/

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