ios開發判斷網絡連接及網絡異常(ios自學筆記)

我們在開發APP涉及網絡連接的時候,提前判斷一下當前的網絡連接狀態,如果沒有網絡,就不再請求url,省去不必要的步驟,所以,這個如何判斷?其實很簡單。

前提:工程添加:SystemConfiguration.framework framework


然後在需要判斷的類中包含頭文件:

  1. #import "Reachability.h"  

【如果你使用的ASIHTTPRequest類庫,那麼直接import Reachbility.h就可以了,ASIHTTP類庫裏包含Reachbility.h和.m】



下面是我寫的一個方法:

  1. -(BOOL) isConnectionAvailable{  
  2.   
  3.     BOOL isExistenceNetwork = YES;  
  4.     Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];  
  5.     switch ([reach currentReachabilityStatus]) {  
  6.         case NotReachable:  
  7.             isExistenceNetwork = NO;  
  8.             //NSLog(@"notReachable");  
  9.             break;  
  10.         case ReachableViaWiFi:  
  11.             isExistenceNetwork = YES;  
  12.             //NSLog(@"WIFI");  
  13.             break;  
  14.         case ReachableViaWWAN:  
  15.             isExistenceNetwork = YES;  
  16.             //NSLog(@"3G");  
  17.             break;  
  18.     }  
  19.       
  20.     if (!isExistenceNetwork) {  
  21.         MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];//<span style="font-family: Arial, Helvetica, sans-serif;">MBProgressHUD爲第三方庫,不需要可以省略或使用AlertView</span>  
  22.         hud.removeFromSuperViewOnHide =YES;  
  23.         hud.mode = MBProgressHUDModeText;  
  24.         hud.labelText = NSLocalizedString(INFO_NetNoReachable, nil);  
  25.         hud.minSize = CGSizeMake(132.f, 108.0f);  
  26.         [hud hide:YES afterDelay:3];  
  27.         return NO;  
  28.     }  
  29.       
  30.     return isExistenceNetwork;  
  31. }  



然後在需要判斷的地方直接:[self isConnectionAvailable] ,大家看懂了吧,就這麼簡單。

所以舉一反三,如果你不單單是判斷是否網絡通暢,而是要判斷是WIFI或3G,再寫一個isEnableWIFI的方法,具體判斷方法就不用再贅述了吧,currentReachabilityStatus判斷之。


是不是很方便?項目更合理了呢?

發佈了39 篇原創文章 · 獲贊 15 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章