Reachability 实时监控网络状态

  • 从官网出下载Reachability.h/m文件,拖入工程

  • 调用Reachability.h头文件,并创建全局变量Reachability *internetReachability;

  • 在AppDelegate的- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions方法中创建通知

 //添加一个系统通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
    //初始化
    internetReachability=[Reachability reachabilityForInternetConnection];
    //通知添加到Run Loop
    [internetReachability startNotifier];
    [self updateInterfaceWithReachability:internetReachability];
  • 实现通知方法
- (void) reachabilityChanged:(NSNotification *)note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
    [self updateInterfaceWithReachability:curReach];
}
  • 监测网络状态方法
- (void)updateInterfaceWithReachability:(Reachability *)reachability
{
    NetworkStatus netStatus = [reachability currentReachabilityStatus];
    switch (netStatus) {
        case NotReachable:
            NSLog(@"====当前网络状态不可用=======");
            break;
        case ReachableViaWiFi:
            NSLog(@"====当前网络状态为Wifi=======");
            break;
        case ReachableViaWWAN:
            NSLog(@"====当前网络状态为流量=======keso");
            break;
    }
}

注:

  • 此方法能监测所有页面的网络状态,可是要在当前页面获取当前网络状态则需要使用AFNetWorking,如果不嫌麻烦那就一个一个写.

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 9,588评论 1 27
  • 1.从官网出下载Reachability.h/m文件,拖入工程https://developer.apple.co...
    Stormstout阅读 819评论 0 1
  • 四、网络环境判断 1、Reachability类名 (1)导入Reachability类名 (2)初始化Reach...
    fb8baa034a77阅读 98评论 0 1
  • 在项目中实现网络的实时监测有两种方式:一种是采用第三方网络请求的网络检测方法,一种是使用OC自带的网络检测方法。我...
    胖胖的立阅读 719评论 0 0
  • 在刚刚结束的赣州市南康区第一届运动会暨第三届中小学生体育节初中生羽毛球赛上,南康五中喜获女子组第一、男子组第二的优...
    花满三春阅读 197评论 0 0
  • 今天第一次下载简读,首先喜欢的是它app的样式。怀着好奇心安装后点开来确实跟其他阅读类软件有所不同,权且用着。
    爱清新煊阅读 104评论 0 0
  • 冬的风 刺骨才后知后觉 冬的雨 淋漓不尽如人意 冬的雪 一地的不解乡愁 冬的你 吹奏鸣乐相思曲 曲诉说着 我的张望...
    修农阅读 366评论 1 7