断网判断

 

#import "ViewController.h"
#import "Reachability.h"

@interface ViewController ()
@property(nonatomic,retain)Reachability * coon;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIButton * checkBut = [UIButton buttonWithType:UIButtonTypeCustom];
    [checkBut addTarget:self action:@selector(handleCheck:) forControlEvents:UIControlEventTouchUpInside];
    [checkBut setTitle:@"点击检测网络" forState:UIControlStateNormal];
    [self.view addSubview:checkBut];
    checkBut.frame = CGRectMake(50, 50, 120, 20);
    
    //创建一个监控网络状态的消息中心
    NSNotificationCenter * notifyCenter = [NSNotificationCenter defaultCenter];
    [notifyCenter addObserver:self selector:@selector(checkNetWork) name:kReachabilityChangedNotification object:nil];
    self.coon = [Reachability reachabilityForInternetConnection];//
    [self.coon startNotifier];//开始检测网络
}
//检测网络的按钮
-(void)handleCheck:(UIButton *)sender{
    //检测网络是否发生变化
    [self checkNetWork];
}
//监控网络是否发生了变化
-(void)checkNetWork{
    //1检测 WiFi 的状态
    Reachability * wifi = [Reachability reachabilityForLocalWiFi];
    //2.检测手机手否能够上网(2G/3G/2.5G/Wifi)
    Reachability * conn = [Reachability reachabilityForInternetConnection];
    if ([wifi currentReachabilityStatus] != NotReachable) {//有wifi
        UIAlertView * alter = [[UIAlertView alloc]initWithTitle:@"网络检测" message:@"WiFi链接成功" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
        [alter show];
        NSLog(@"检测到互联网Wifi");
    }else if ([conn currentReachabilityStatus] != NotReachable)//没使用WiFi网络,使用手机自带的网络
    {
        UIAlertView * alter = [[UIAlertView alloc]initWithTitle:@"网络检测" message:@"手机自带的网络" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
        [alter show];
        NSLog(@"检测到互联网本地网络");
    }else{
        NSLog(@"没有检测到互联网");
    }
    //使用 wifi
//    [wifi currentReachabilityStatus] != NotReachable;
//    [conn currentReachabilityStatus] != NotReachable;
    //使用的是本地的网络
//    [wifi currentReachabilityStatus] == NotReachable;
//    [conn currentReachabilityStatus] != NotReachable;
    //没有网络
//    [wifi currentReachabilityStatus] != NotReachable;
//    [conn currentReachabilityStatus] != NotReachable;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    
}

-(void)dealloc{
    [self.coon stopNotifier];
    //移除消息的通知者
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
@end
 检测网络,我用的是 pod引入的第三方网络检测类 Reachability类

 

posted @ 2017-03-17 16:35  ywda  阅读(567)  评论(0编辑  收藏  举报