萬盛學電腦網

 萬盛學電腦網 >> 網絡基礎知識 >> 【ios開發】如何判斷當前網絡連接狀態(網絡是否正常)

【ios開發】如何判斷當前網絡連接狀態(網絡是否正常)



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


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


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

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



下面是我寫的一個方法:

-(BOOL) isConnectionAvailable{ BOOL isExistenceNetwork = YES; Reachability *reach = [Reachability reachabilityWithHostName:@""]; switch ([reach currentReachabilityStatus]) { case NotReachable: isExistenceNetwork = NO; //NSLog(@"notReachable"); break; case ReachableViaWiFi: isExistenceNetwork = YES; //NSLog(@"WIFI"); break; case ReachableViaWWAN: isExistenceNetwork = YES; //NSLog(@"3G"); break; } if (!isExistenceNetwork) { MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];//MBProgressHUD為第三方庫,不需要可以省略或使用AlertView hud.removeFromSuperViewOnHide =YES; hud.mode = MBProgressHUDModeText; hud.labelText = NSLocalizedString(INFO_NetNoReachable, nil); hud.minSize = CGSizeMake(132.f, 108.0f); [hud hide:YES afterDelay:3]; return NO; } return isExistenceNetwork; }



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

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

【ios開發】如何判斷當前網絡連接狀態(網絡是否正常)


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



130529




copyright © 萬盛學電腦網 all rights reserved