iOS开发网络篇—网络检查
-
最近做一个项目要频繁的进行网络操作,但有时需要判定网络状态和当前网络的类型。看到好多前辈都是使用
reachability来实现的。我也试了试效果还不错,封装成了工具类方便大家使用。使用说明:
1.添加framework:
将SystemConfiguration.framework添加进工程。
2.下载https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip
复制里面的Reachability.h和Reachability.m到项目中
3.添加CloNetworkUtil.h和CloNetworkUitl.m到你的项目中
在使用的地方导入CloNetworkUtil.h头文件即可
CloNetworkUtil.h代码:
01.
//
02.
// CloNetworkUtil.h
03.
// NetWorkTest
04.
//
05.
// Created by Cloay on 12-6-19.
06.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
07.
/**
08.
1.添加framework:
09.
将SystemConfiguration.framework 添加进工程。
11.
复制里面的Reachability.h和Reachability.m到项目中
12.
*/
13.
14.
#
import
<Foundation/Foundation.h>
15.
#
import
"Reachability.h"
16.
@interface
CloNetworkUtil : NSObject{
17.
}
18.
19.
20.
- (Reachability *)initReachability;
21.
- (BOOL)getNetWorkStatus;
22.
- (NSString *)getNetWorkType;
23.
@end
实现如下:
01.
//
02.
// CloNetworkUtil.m
03.
// NetWorkTest
04.
//
05.
// Created by Cloay on 12-6-19.
06.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
07.
//
08.
09.
#
import
"CloNetworkUtil.h"
10.
11.
@implementation
CloNetworkUtil
12.
13.
//初始化reachability
14.
- (Reachability *)initReachability{
15.
Reachability *reachability = [Reachability reachabilityWithHostName:@
"www.baidu.com"
];
16.
return
reachability;
17.
}
18.
19.
//判断网络是否可用
20.
- (BOOL)getNetWorkStatus{
21.
if
([[self initReachability] currentReachabilityStatus] == NotReachable) {
22.
return
NO;
23.
}
else
{
24.
return
YES;
25.
}
26.
}
27.
28.
/**
29.
获取网络类型
30.
return
31.
*/
32.
- (NSString *)getNetWorkType
33.
{
34.
NSString *netWorkType;
35.
Reachability *reachability = [self initReachability];
36.
switch
([reachability currentReachabilityStatus]) {
37.
case
ReachableViaWiFi:
//Wifi网络
38.
netWorkType = @
"wifi"
;
39.
break
;
40.
case
ReachableViaWWAN:
//无线广域网
41.
netWorkType = @
"wwan"
;
42.
break
;
43.
default
:
44.
netWorkType = @
"no"
;
45.
break
;
46.
}
47.
return
netWorkType;
48.
}
49.
50.
@end
很简单就不在说明了!效果图:
有问题请留言,大家一起交流学习!