基于AFNetworking的网络判断【原创】

首先导入AFNetworking第三方框架,然后将下面的.h和.m放在你新建的类中便可

GGNetworkJudge.h   在最后会有Singleton.h头文件代码

 1 #import <Foundation/Foundation.h>
 2 #import "AFNetworkReachabilityManager.h"
 3 #import "Singleton.h" //此处是将一个普通类转化为单例类的头文件
 4 
 5 @interface GGNetworkJudge : NSObject
 6 
 7 singleton_interface(GGNetworkJudge);
10 
11 //监测网络状态
12 - (void)checkNetworkStatus;
13 
14 @end

 

GGNetworkJudge.m

 1 #import "GGNetworkJudge.h"
 2 #import <UIKit/UIKit.h>
 3 
 4 @implementation GGNetworkJudge
 5 singleton_implementation(GGNetworkJudge);
 6 
 7 #pragma mark - 私有方法
 8 #pragma mark 网络状态变化提示
 9 -(void)alert:(NSString *)message{
10     UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"系统信息" message:message delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: nil];
11     [alertView show];
12 }
13 
14 #pragma mark 网络状态监测
15 -(void)checkNetworkStatus{
16     
17     AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
18     
19     //开始监控
20     [manager startMonitoring];
21 
22     
23     // 检测网络连接的单例,网络变化时的回调方法
24     [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
25         
26         switch (status) {
27             case AFNetworkReachabilityStatusReachableViaWWAN:
28                 //[self alert:@"2G/3G/4G Connection."];
29                 [self alert:@"网络已连接"];
30 
31                 break;
32             case AFNetworkReachabilityStatusReachableViaWiFi:
33                 // [self alert:@"WiFi Connection."];
34                 
35                 [self alert:@"网络已连接"];
36                 break;
37             case AFNetworkReachabilityStatusNotReachable:
38                 //  [self alert:@"Network not found."];
39                 [self alert:@"网络已断开,请检查网络设置"];
40 
41                 
42                 break;
43                 
44             default:
45                 // [self alert:@"Unknown."];
46                 [self alert:@"网络未知错误"];
47 
48                 break;
49 
50         }
51         
52     }];
53     
54     
55     
56 
57 
58 }
59 
60 
61 @end

 

Singleton.h

 1 /*
 2 专门用来保存单例代码
 3  最后一行不要加 \ 
 4 */
 5 
 6 // @interface
 7 #define singleton_interface(className) \
 8 + (className *)shared##className;
 9 
10 
11 // @implementation
12 #define singleton_implementation(className) \
13 static className *_instance; \
14 + (id)allocWithZone:(NSZone *)zone \
15 { \
16     static dispatch_once_t onceToken; \
17     dispatch_once(&onceToken, ^{ \
18         _instance = [super allocWithZone:zone]; \
19     }); \
20     return _instance; \
21 } \
22 + (className *)shared##className \
23 { \
24     static dispatch_once_t onceToken; \
25     dispatch_once(&onceToken, ^{ \
26         _instance = [[self alloc] init]; \
27     }); \
28     return _instance; \
29 }

 

posted @ 2015-06-19 10:54  广_ios  阅读(479)  评论(0编辑  收藏  举报