iOS之Reachability和AFN实时检测网络状态

来源:互联网 发布:手机mac地址伪装 编辑:程序博客网 时间:2024/05/17 05:52

以前做网络监测的时候一直用的苹果给提供的Reachability,后来发现AFN自带的也有,而且感觉使用更方便(前提是我的网络请求用的就是AFN的),现总结了一下,便于参考!

一、AFNetworing检测网络
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {    // 当网络状态改变时调用    switch (status) {        case AFNetworkReachabilityStatusUnknown:            NSLog(@"未知网络");            break;        case AFNetworkReachabilityStatusNotReachable:             NSLog(@"没有网络");            break;        case AFNetworkReachabilityStatusReachableViaWWAN:            NSLog(@"手机自带网络");            break;        case AFNetworkReachabilityStatusReachableViaWiFi:             NSLog(@"WIFI");            break;    }}];//开始监控[manager startMonitoring]
二、Reachability
1.注册通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];// 创建ReachabilityReachability *reachability = [Reachability reachabilityForInternetConnection];// 开始监控网络(一旦网络状态发生改变, 就会发出通知kReachabilityChangedNotification)[reachability startNotifier];
2.监听方法
- (void)networkStateChange{// 1.检测网络状态Reachability *wifi = [Reachability reachabilityForLocalWiFi];// 2.检测手机是否能上网络Reachability *connect = [Reachability reachabilityForInternetConnection];// 3.判断网络状态if ([wifi currentReachabilityStatus] != NotReachable) {       NSLog(@"有wifi");   }   else if ([connect currentReachabilityStatus] != NotReachable) {       NSLog(@"使用手机自带网络进行上网");   }  else {       NSLog(@"没有网络");   }}


0 0
原创粉丝点击