1. 程式人生 > >iOS開發——Reachability和AFNetworking判斷網路連線狀態

iOS開發——Reachability和AFNetworking判斷網路連線狀態

一、Reachability // 監聽網路狀態改變的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil]; // 建立Reachability self.conn = [Reachability reachabilityForInternetConnection]; // 開始監控網路(一旦網路狀態發生改變, 就會發出通知kReachabilityChangedNotification) [self.conn startNotifier]; // 處理網路狀態改變 - (void)networkStateChange { // 1.檢測wifi狀態 Reachability *wifi = [Reachability reachabilityForLocalWiFi]; // 2.檢測手機是否能上網路(WIFI\3G\2.5G) Reachability *conn = [Reachability reachabilityForInternetConnection]; // 3.判斷網路狀態 if ([wifi currentReachabilityStatus] != NotReachable) {      // 有wifi NSLog(@"有wifi"); } else if ([conn currentReachabilityStatus] != NotReachable) {      // 沒有使用wifi, 使用手機自帶網路進行上網 NSLog(@"使用手機自帶網路進行上網"); } else {      // 沒有網路 NSLog(@"沒有網路"); } }   二、AFNetworking
// 1.獲得網路監控的管理者 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; // 2.設定網路狀態改變後的處理 [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {   // 當網路狀態改變了, 就會呼叫這個block   switch (status) {     case AFNetworkReachabilityStatusUnknown:       // 未知網路       NSLog(@"未知網路");       break;     case AFNetworkReachabilityStatusNotReachable:       // 沒有網路(斷網)       NSLog(@"沒有網路(斷網)");       break;     case AFNetworkReachabilityStatusReachableViaWWAN:       // 手機自帶網路       NSLog(@"手機自帶網路");       break;     case AFNetworkReachabilityStatusReachableViaWiFi:       // WIFI       NSLog(@"WIFI");       break;   } }]; // 3.開始監控 [manager startMonitoring];