您的位置:首页 > 理论基础 > 计算机网络

Reachability.h 开源类的使用:判断网络环境,连接情况(无网络连接,3G,WIFI,GPRS)

2014-03-28 17:10 811 查看
在ASIHttpRequest开源库中有这个类。

先看Reachability.h发现

#import <Foundation/Foundation.h>

#import <SystemConfiguration/SystemConfiguration.h>

#import <netinet/in.h>
所以如果我们在项目中需要用到此类的话,需要引入SystemConfiguration.framework。

此类在ios网络开发中可以确认判断网络环境,连接情况(无网络连接,3G,WIFI,GPRS)

enum { // DDG NetworkStatus Constant Names.

kNotReachable = 0, // Apple's code depends upon 'NotReachable' being the same value as 'NO'.

kReachableViaWWAN, // Switched order from Apple's enum. WWAN is active before WiFi.

kReachableViaWiFi

};

定义三种网络类型:

一:kNotReachable 无网络连接

二:kReachableViaWWAN 使用GPRS或者3G网络连接

三:kReachableViaWiFi 使用WIFI连接
我在项目中用下面的语句判断是否存在网络连接

BOOL reachable = [[Reachability reachabilityForInternetConnection] isReachable];

if (!reachable) {

UIAlertView *alertView = [[[UIAlertView alloc] initWithTitle:@"该功能需要连接网络才能使用,请检查您的网络连接状态" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil] autorelease];

[alertView show];

return;

}
当有网络请求的时候,类中方法可以返回目前的网络连接状态

例如:Reachable *reachable = [Reachable reachabilityWithHostName:@"http://blog.csdn.net"];

之后我们应用

// These are the status tests.

- (NetworkStatus) currentReachabilityStatus; 返回网络连接状态

switch( [reachable currentReachabilityStatus ] ) {

/* [reachable currentReachabilityStatus ]包含三个值

一:kNotReachable 无网络连接

二:kReachableViaWWAN 使用GPRS或者3G网络连接

三:kReachableViaWiFi 使用WIFI连接 */

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: