原创作者: 那夜的星空分外清澈
版权声明: 本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011374318/article/details/79302085
在 AFNetworking 框架中,提供了一个 AFNetworkReachabilityManager 类用来监控网络状态,其可能的状态如下:
AFNetworkReachabilityStatusUnknown 未知状态(-1)
AFNetworkReachabilityStatusNotReachable 不可达状态(0)
AFNetworkReachabilityStatusReachableViaWWAN 蜂窝网络连通(1)
AFNetworkReachabilityStatusReachableViaWiFi 无线网络连通(2)
通过 AFNetworkReachabilityManager 的属性 networkReachabilityStatus 可以获取当前网络的状态,这个属性值是上述状态之一。
同步回调
可以通过方法 isReachable 、isReachableViaWWAN 、isReachableViaWiFi
判断当前网络是否连通或是蜂窝数据连通还是无线网络连通。
AFNetworkReachabilityManager 中提供了多个创建实例的方法,常用的是 sharedManager
方法,这也是 AFURLSessionManager 类中获取网络状态监视器的方法。
该方法获取一个公用的实例对象,其实际上也是调用 manager 方法,创建一个监控默认套接字地址是否可达的监视器。
当然,还可以直接调用 managerForAddress:
或 managerForDomain:
方法来指点要监控的套接字地址或域名地址。
当获取到 AFNetworkReachabilityManager
实例对象后,根据需要可以使用下面的方法设置网络状态发生变化时的回调。
异步回调:
-(void)setReachabilityStatusChangeBlock:(nullable void (^)(AFNetworkReachabilityStatus status))block;
之后,调用实例方法 startMonitoring 便可以开启网络状态监控了,不需要时,可以调用方法 stopMonitoring 关闭监控。
通知:
每当网络发生变化时,除了调用设置的回调方法外,还会推送一个 AFNetworkingReachabilityDidChangeNotification
通知,该通知中的 userInfo 信息中的 AFNetworkingReachabilityNotificationStatusItem
包含网络状态信息。
作者:那夜的星空分外清澈
来源:CSDN
原文:https://blog.csdn.net/u011374318/article/details/79356713
版权声明:本文为博主原创文章,转载请附上博文链接!