iOS开发——Reachability和AFNetworking判断网络连接状态
Posted 乱七八糟21号
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发——Reachability和AFNetworking判断网络连接状态相关的知识,希望对你有一定的参考价值。
一、Reachability // 监听网络状态改变的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil]; // 创建Reachability self.conn = [Reachability reachabilityForInternetConnection]; // 开始监控网络(一旦网络状态发生改变, 就会发出通知kReachabilityChangedNotification) [self.conn startNotifier]; // 处理网络状态改变 - (void)networkStateChange { // 1.检测wifi状态 Reachability *wifi = [Reachability reachabilityForLocalWiFi]; // 2.检测手机是否能上网络(WIFI\3G\2.5G) Reachability *conn = [Reachability reachabilityForInternetConnection]; // 3.判断网络状态 if ([wifi currentReachabilityStatus] != NotReachable) {
// 有wifi NSLog(@"有wifi"); } else if ([conn currentReachabilityStatus] != NotReachable) {
// 没有使用wifi, 使用手机自带网络进行上网 NSLog(@"使用手机自带网络进行上网"); } else {
// 没有网络 NSLog(@"没有网络"); } }
二、AFNetworking // 1.获得网络监控的管理者 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; // 2.设置网络状态改变后的处理 [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
// 当网络状态改变了, 就会调用这个block
switch (status) {
case AFNetworkReachabilityStatusUnknown:
// 未知网络
NSLog(@"未知网络");
break;
case AFNetworkReachabilityStatusNotReachable:
// 没有网络(断网)
NSLog(@"没有网络(断网)");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
// 手机自带网络
NSLog(@"手机自带网络");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
// WIFI
NSLog(@"WIFI");
break;
}
}];
// 3.开始监控
[manager startMonitoring];
以上是关于iOS开发——Reachability和AFNetworking判断网络连接状态的主要内容,如果未能解决你的问题,请参考以下文章
使用GCD中的dispatch_semaphore(信号量)处理一个界面多个请求(把握AFNet网络请求完成的正确时机)