-
最近做一个项目要频繁的进行网络操作,但有时需要判定网络状态和当前网络的类型。看到好多前辈都是使用
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.h03.// NetWorkTest04.//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.@interfaceCloNetworkUtil : NSObject{17.}18.19.20.- (Reachability *)initReachability;21.- (BOOL)getNetWorkStatus;22.- (NSString *)getNetWorkType;23.@end
实现如下:
01.//02.// CloNetworkUtil.m03.// NetWorkTest04.//05.// Created by Cloay on 12-6-19.06.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.07.//08.09.#import"CloNetworkUtil.h"10.11.@implementationCloNetworkUtil12.13.//初始化reachability14.- (Reachability *)initReachability{15.Reachability *reachability = [Reachability reachabilityWithHostName:@"www.baidu.com"];16.returnreachability;17.}18.19.//判断网络是否可用20.- (BOOL)getNetWorkStatus{21.if([[self initReachability] currentReachabilityStatus] == NotReachable) {22.returnNO;23.}else{24.returnYES;25.}26.}27.28./**29.获取网络类型30.return31.*/32.- (NSString *)getNetWorkType33.{34.NSString *netWorkType;35.Reachability *reachability = [self initReachability];36.switch([reachability currentReachabilityStatus]) {37.caseReachableViaWiFi://Wifi网络38.netWorkType = @"wifi";39.break;40.caseReachableViaWWAN://无线广域网41.netWorkType = @"wwan";42.break;43.default:44.netWorkType = @"no";45.break;46.}47.returnnetWorkType;48.}49.50.@end
很简单就不在说明了!效果图:

有问题请留言,大家一起交流学习!