Alamofire - 检测互联网连接
Posted
技术标签:
【中文标题】Alamofire - 检测互联网连接【英文标题】:Alamofire - detect internet connection 【发布时间】:2020-06-23 10:39:35 【问题描述】:如何检测互联网连接?
我有一个视图控制器,它显示从服务器获取的数据。它是模态的。
如果用户未连接到互联网,我会显示一条消息,要求连接到互联网。否则,我显示数据。
当用户在不离开应用程序的情况下连接到互联网时,如何检测它?我认为可以在 Alamofire 中做到这一点。
我在 viewDidLoad 和 viewWillAppear 中使用了以下代码,但没有调用监听器 - 如果我连接和断开 WIFI,startListening 没有被调用。
let network = NetworkReachabilityManager()
network!.startListening status in
if status == .reachable(.cellular) || status == .reachable(.ethernetOrWiFi)
self.fetchProducts()
else
self.noInternetConnnection()
仅供参考,您可以在控制中心同时无法使用 WIFI 和移动数据。
【问题讨论】:
“它不起作用”是什么意思,当网络状态发生变化时是否会调用监听器?否则代码块应该可以工作。 @omerfarukozturk 你是对的。我更新了我的问题。 您不应该在发出网络请求之前检查连接性。您应该提出请求并正确处理任何失败。 @JonShier 我只想说非常感谢。我按照你的建议去做。 【参考方案1】:如果您在函数内声明 network
,它可能会在作用域结束后立即被释放。
确保将其存储在实例变量中。
【讨论】:
以上是关于Alamofire - 检测互联网连接的主要内容,如果未能解决你的问题,请参考以下文章