网络

网络监控

2015-07-17  本文已影响158人  zhazha

本文的意义

  1. 利用苹果原生的类Reachability,实时监控网络的状态
  2. 利用框架AFNetworking实时监控网络状态

网络状态实时监控的目的

利用苹果原生的类Reachability实现实时监控网络状态

Reachability的使用步骤

实现代码如下:

- (void)appleMonitoring
{
    // 监听通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];

    // 开始监控网络
    self.reachability = [Reachability reachabilityForInternetConnection];
    [self.reachability startNotifier];
}

// 重写控制器的dealloc方法,当控制器销毁的时候移除通知
- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    // 关闭监控
    [self.reachability stopNotifier];
    self.reachability = nil;
}

// 获取网络状态
- (void)getNetworkStatus
{
    // 判断当前网络是否是WiFi
    if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable) {
        NSLog(@"是wifi");

    // 判断当前网络是否是手机自带网络
    } else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable) {
        NSLog(@"是手机自带网络");
    } else {
        NSLog(@"网络有问题");
    }
}

利用流行框架AFNetworking实现实时监控网络状态

实现代码如下:

- (void)afnMonitoring
{
    // 开始网络监控
    AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];


    [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        NSLog(@"-----当前的网络状态---%zd", status);
    }];

    [mgr startMonitoring];

    // 拿到当前网络状态
    // mgr.networkReachabilityStatus;
}
上一篇 下一篇

猜你喜欢

热点阅读