众所周知,我们在开发APP时,涉及网络连接的时候,都会想着提前判断一下当前的网络连接状态,如果没有网络,就不再请求url,省去不必要的步骤,所以,这个如何判断?其实很简单。
前提:工程添加:SystemConfiguration.framework framework
去苹果API里搜索Reachability,下载demo,把demo里的Reachability.h和Reachability.m拖到自己的工程里
然后在需要判断的类中包含头文件:
1
|
#
import
"Reachability.h"
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
-(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 = @
"当前网络不可用,请检查网络连接"
;
//提示的内容
hud.minSize = CGSizeMake(
132
.f,
108
.0f);
[hud hide:YES afterDelay:
3
];
return
NO;
}
return
isExistenceNetwork;
}
|
所以举一反三,如果你不单单是判断是否网络通畅,而是要判断是WIFI或3G,再写一个isEnableWIFI的方法,具体判断方法就不用再赘述了吧,currentReachabilityStatus判断之。