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,136評論 1 32
  • 笥空吾實以典籍 屋陋吾潤以琴書 腹餒吾飽以義理 貌瘠者吾肥以精神 莫高匪天,書括其旨 莫厚匪地,書載其理 莫大匪道...
    佐撰閱讀 1,536評論 6 15