iOS 使用Apple 官方 Reachability监测网络状态

1.首先下载苹果官方监听的代码:
苹果官方监听demo

2.把demo中的 Reachability.h 和 Reachability.m 文件导入到工程

3.把头文件Reachability.h 导入BaseController.m

4.在baseController.h里面声明一个BOOL值

@property (nonatomic,assign) BOOL isNetWorkingUse;

5.在BaseController.m文件声明

@property (nonatomic,strong) Reachability *reach;

6.在BaseController.m文件代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    /**监听网络变化*/
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
    self.reach = [Reachability reachabilityWithHostName:@"www.baidu.com"];
    // 让Reachability对象开启被监听状态
    [self.reach startNotifier];

}

/*!
 * Called by Reachability whenever status changes.
 */
- (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:        {
            self.isNetWorkingUse = NO;
            break;
        }
            
        case ReachableViaWWAN:        {
            self.isNetWorkingUse = YES;
            break;
        }
        case ReachableViaWiFi:        {
            self.isNetWorkingUse = YES;
            break;
        }
    }
}

//注意要销毁通知
- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,142评论 1 32
  • 笥空吾实以典籍 屋陋吾润以琴书 腹馁吾饱以义理 貌瘠者吾肥以精神 莫高匪天,书括其旨 莫厚匪地,书载其理 莫大匪道...
    佐撰阅读 1,541评论 6 15