AFNetworking 框架小结 五(AFNetworkReachabilityManager)(转)

原创作者: 那夜的星空分外清澈
版权声明: 本文为博主原创文章,未经博主允许不得转载。 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
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(AFNetworking 框架小结 五(AFNetworkReachabilityManager)(转))