码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发--监测网络变化

时间:2015-01-17 12:42:43      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

     通常在APP的某些界面,需要通过网络获取数据更新界面。应用程序通过建立网络状态监听,当网络从断开变为连接状态后,自动刷新页面数据,因此不需要用户手动刷新页面,提升了产品的用户体验。


一、包含头文件

#import "Reachability.h"

同时在ViewContorller中添加实例变量:Reachability *_networkConn;


二、建立网络变化监听

   网络变化包括从断开变为连接、连接变为断开两种情况,任意一种情况发生,app都会收到网络变化通知。 在viewDidLoad方法中添加如下代码:

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
    _networkConn = [Reachability reachabilityForInternetConnection];
    [_networkConn startNotifier];
    其中,networkStateChange函数会在网络发生变化的时候被调用。


三、获取网络状态

    在接受到网络变化通知后,通知并没有告知当前的网络状态,所以我们并不知道当前网络是处于断开还是连接,需要主动探测,探测方法如下:

- (BOOL)isNetworkEnable
{
    BOOL flag = YES;
    Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"];
    switch ([r currentReachabilityStatus]) {
        case NotReachable:
            flag = NO;
            break;
        case ReachableViaWWAN:
            break;
        case ReachableViaWiFi:
            break;
            
        default:
            break;
    }
    
    return flag;
}

四、刷新界面

- (void)networkStateChange
{
    if ([self isNetworkEnable]) {
        //在此刷新界面
    }
}


iOS开发--监测网络变化

标签:

原文地址:http://blog.csdn.net/wang_lichun/article/details/42804087

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!