先看Reachability.h發現ios
#import <Foundation/Foundation.h>網絡
#import <SystemConfiguration/SystemConfiguration.h>spa
#import <netinet/in.h>.net
因此若是咱們在項目中須要用到此類的話,須要引入SystemConfiguration.framework。此類在ios網絡開發中能夠確認判斷網絡環境,鏈接狀況(無網絡鏈接,3G,WIFI,GPRS)code
enum { // DDG NetworkStatus Constant Names.blog
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.it
kReachableViaWiFiio
};class
定義三種網絡類型:
一:kNotReachable 無網絡鏈接
二:kReachableViaWWAN 使用GPRS或者3G網絡鏈接
三:kReachableViaWiFi 使用WIFI鏈接
我在項目中用下面的語句判斷是否存在網絡鏈接BOOL reachable = [[ReachabilityreachabilityForInternetConnection] 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鏈接 */
}