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

以前做网络监测的时候一直用的苹果给提供的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];

// 创建Reachability
Reachability *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(@"没有网络");
   }
}



版权声明:本文为GBKing原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。