實現(xiàn)網(wǎng)絡(luò)狀態(tài)監(jiān)聽的步驟
定義Reachability類型的成員變量來保存網(wǎng)絡(luò)的狀態(tài)
@PRoperty (nonatomic, strong) Reachability *reachability;注冊為通知中心的的觀察者
// 在通知中心注冊觀察者[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];/*** getNetworkStatus:監(jiān)聽到通知的回調(diào)方法* kReachabilityChangedNotification:通知的類型,即網(wǎng)絡(luò)狀態(tài)發(fā)生改變時,觸發(fā)通知* object:傳遞給getNetworkStatus回調(diào)方法的參數(shù)*/// 獲取并保存網(wǎng)絡(luò)狀態(tài)self.reachability = [Reachability reachabilityForInternetConnection];// 開始監(jiān)聽[self.reachability startNotifier];在監(jiān)聽到通知的觸發(fā)方法中判斷網(wǎng)絡(luò)的狀態(tài)
- (void)getNetworkStatus{ if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable) { NSLog(@"是WIFI"); } else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable) { NSLog(@"是手機(jī)自帶網(wǎng)絡(luò)"); } else { NSLog(@"網(wǎng)絡(luò)有問題"); }}將觀察者從通知中心移除,停止監(jiān)聽,清空網(wǎng)絡(luò)監(jiān)聽對象
- (void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self]; [self.reachability stopNotifier]; self.reachability = nil;}實現(xiàn)網(wǎng)絡(luò)狀態(tài)監(jiān)聽的
獲取AFNetworkReachabilityManager的實例
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];設(shè)置manager在網(wǎng)絡(luò)發(fā)生變化的時回調(diào)的Block
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { NSLog(@"----當(dāng)前網(wǎng)絡(luò)狀態(tài)---%zd", status);}];/*** status:表示當(dāng)前網(wǎng)絡(luò)的狀態(tài),是個枚舉類型變量,具有以下取值* AFNetworkReachabilityStatusUnknown = -1* AFNetworkReachabilityStatusNotReachable = 0* AFNetworkReachabilityStatusReachableViaWWAN = 1* AFNetworkReachabilityStatusReachableViaWiFi = 2*/開始監(jiān)聽
[manager startMonitoring];新聞熱點(diǎn)
疑難解答