iOS 如何判斷當前網絡連接狀態 網絡是否正常 網絡是否可用
網絡資源:出處http://blog.csdn.net/mad1989/article/details/8987368
眾所周知,我們在開發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:@"www.apple.com"];
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];//<span style="font-family: Arial, Helvetica, sans-serif;">MBProgressHUD為第三方庫,不需要可以省略或使用AlertView</span>
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;
}
所以舉一反三,如果你不單單是判斷是否網絡通暢,而是要判斷是WIFI或3G,再寫一個isEnableWIFI的方法,具體判斷方法就不用再贅述了吧,currentReachabilityStatus判斷之。
是不是很方便?項目更合理了呢?
130529
posted on 2014-01-24 14:37 ACM_Someone like you 閱讀(2385) 評論(0) 收藏 舉報
浙公網安備 33010602011771號