iPhone开发之网络检查


最近做一个项目要频繁的进行网络操作,但有时需要判定网络状态和当前网络的类型。看到好多前辈都是使用

reachability来实现的。我也试了试效果还不错,封装成了工具类方便大家使用。

使用说明

    1.添加framework 

    SystemConfiguration.framework添加进工程。 

    2.下载https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip

    复制里面的Reachability.hReachability.m到项目中

    3.添加CloNetworkUtil.h和CloNetworkUitl.m到你的项目中

     在使用的地方导入CloNetworkUtil.h头文件即可

CloNetworkUtil.h代码:

  1. //   
  2. //  CloNetworkUtil.h   
  3. //  NetWorkTest   
  4. //   
  5. //  Created by Cloay on 12-6-19.   
  6. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.   
  7. /** 
  8.     1.添加framework:  
  9.     将SystemConfiguration.framework 添加进工程。  
  10.     2.下载 https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip 
  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  
实现如下:
  1. //   
  2. //  CloNetworkUtil.m   
  3. //  NetWorkTest   
  4. //   
  5. //  Created by Cloay on 12-6-19.   
  6. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.   
  7. //   
  8.   
  9. #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  

很简单就不在说明了!效果图:

相关内容