美文网首页
iOS 网络问题 - Reachability

iOS 网络问题 - Reachability

作者: 能为空 | 来源:发表于2016-09-12 11:18 被阅读0次

    首先在AppDelegate.h添加头文件"Reachability.h",导入框架SystemConfiguration.frame

    下面是代码:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    {

    //开启网络状况的监听

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];

    self.hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"] ;

    //开始监听,会启动一个run loop

    [self.hostReach startNotifier];

    }

    -(void)reachabilityChanged:(NSNotification *)note

    {

    Reachability *currReach = [note object];

    NSParameterAssert([currReach isKindOfClass:[Reachability class]]);

    //对连接改变做出响应处理动作

    NetworkStatus status = [currReach currentReachabilityStatus];

    //如果没有连接到网络就弹出提醒实况

    self.isReachable = YES;

    if(status == NotReachable)

    {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接异常" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];

    [alert show];

    [alert release];

    self.isReachable = NO;

    return;

    }

    if (status==kReachableViaWiFi||status==kReachableViaWWAN) {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接信息" message:@"网络连接正常" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];

    //        [alert show];

    [alert release];

    self.isReachable = YES;

    }

    }

    然后在每个页面的viewWillAppear:加上:

    -(void)viewWillAppear:(BOOL)animated

    {

    [super viewWillAppear:YES];

    AppDelegate *appDlg = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    if(appDlg.isReachable)

    {

    NSLog(@"网络已连接");//执行网络正常时的代码

    }

    else

    {

    NSLog(@"网络连接异常");//执行网络异常时的代码

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接异常" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];

    [alert show];

    [alert release];

    }

    }

    这样就可以检查到在运行程序时网络突然的中断和连接。

    文/陈世美_(简书作者)

    原文链接:http://www.jianshu.com/p/c073d61cdcf1

    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

    相关文章

      网友评论

          本文标题:iOS 网络问题 - Reachability

          本文链接:https://www.haomeiwen.com/subject/snjpettx.html