ios-通过Reachability监听网络状态

Reachability实际上是苹果公司对SCNetworkReachability API做的封装,这个API被定义在SystemConfigure.framework库中,网上可以去下Reachability框架,在AFN中其实监听网络的状态就是对这个框架做了一个封装,在AFN中应该有这么一个类AFNetworkReachabilityManager。那么我们如果想要实时的去监听网络的状态应该如何去做?其实这个框架里面都给我们写好了,我们只需要去调用相应的函数就可以了。

首先去创建一个Reachability对象

@property(nonatomic,strong)Reachability * reachabilityManager;
-(Reachability *)reachabilityManager
{
    if (!_reachabilityManager) {
        //通过检查某个主机能否访问来判断当前网络是否可用,判断网络连接状况
        _reachabilityManager = [Reachability reachabilityWithHostName:@"www.baidu.com"];
    }
    
    return _reachabilityManager;
}
如果我们要实时的去监听网络的状态的改变就需要去注册通知

 //注册通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(chechStatus:) name:kReachabilityChangedNotification 
   object:nil];
    //启动监听
    [self.reachabilityManager startNotifier];
然后注销通知

-(void)dealloc{
    [self.reachabilityManager stopNotifier];
    //注销通知
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
根据状态判断

-(void)chechStatus:(NSNotification *)not{
    
    switch(self.reachabilityManager.currentReachabilityStatus){
        case NotReachable:
            NSLog(@"无连接");
            break;
        case ReachableViaWiFi:
            NSLog(@"WIFI");
            break;
        case ReachableViaWWAN:
            NSLog(@"流量");
            break;
        default:
            break;
    }
}
其实我们也可以没有必要去实时的监听,在做网络状态访问的时候我们进行判断其实就可以。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值