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

iOS开发之联网状态检测

时间:2015-11-23 23:24:49      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

虽然只是一个小功能,感觉还是挺实用的吧!

首先去苹果的官网上下载Reachability这个库。

因为联网的状态是要实时监听的,当网络的情况发生变化的时候要及时通知用户,所以应该使用通知中心。

具体实现:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    //不能写在viewDidLoad网络的情况发生变化的时候要提醒
    //判断能否连接到某一个主机(一般使用百度,他的服务器基本不会断)
     self.reach = [Reachability reachabilityWithHostName:@"baidu.com"];
    
    //添加一个通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(abilityChanged) name:kReachabilityChangedNotification object:nil];
    [self.reach startNotifier];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
    NSLog(@"%@",change);
}


- (void)abilityChanged {
    //状态
    switch (self.reach.currentReachabilityStatus) {
        case NotReachable:
        {
            [self showMessage:@"小伙子没有连接哦"];
        }
            break;
        case ReachableViaWiFi:
        {
            [self showMessage:@"小伙子有WIFI咯"];
            NSLog(@"不用花钱");
        }
            break;
        case ReachableViaWWAN:
        {
       [self showMessage:@"当前网络状态为2G/3G/4G"]; NSLog(
@"要流量"); } break; default: { NSLog(@"不太清楚"); } break; } } - (void)showMessage:(NSString *)title { UIAlertController *alertCtr = [UIAlertController alertControllerWithTitle:title message:nil preferredStyle:UIAlertControllerStyleAlert]; [self presentViewController:alertCtr animated:YES completion:nil]; } - (void)dealloc { //停止监听 [self.reach stopNotifier]; //移除监听 [[NSNotificationCenter defaultCenter] removeObserver:self]; }

 

iOS开发之联网状态检测

标签:

原文地址:http://www.cnblogs.com/wuhongxing/p/4989982.html

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