iOS使用AFNetWorking第三库检测网络连接状态
2016-08-15 13:47
489 查看
今天到公司,由自己的项目还没有空白状态的显示,想到要做一个手机所连接网络的判定,并达到实时监测的目的。了解到如果用iOS自带的Reachability类来实现的话不太方便,因为要保证它处于实时监听的状态,而且在得到当前的网络状态之后就要发送全局通知,出于这样的考虑,决定使用AFNetWorking框架中的AFNetworkActivityIndicatorManager单例类来进行网络状态的实时监听。
以下是具体实现方法:
首先,要引入 AFNetWorking.h 文件,在 AppDelegate 的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions 方法中调用以下函数:
再就是在需要监测网络状态控制器中,在- (void)viewDidLoad方法中注册通知的观察者:
以下是具体实现方法:
首先,要引入 AFNetWorking.h 文件,在 AppDelegate 的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions 方法中调用以下函数:
-(void)isNetWorking{ //开启网络指示器,开始监听 [[AFNetworkReachabilityManager sharedManager] startMonitoring]; // 检测网络连接的单例,网络变化时的回调方法 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { }]; }
再就是在需要监测网络状态控制器中,在- (void)viewDidLoad方法中注册通知的观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notifi:) name:AFNetworkingReachabilityDidChangeNotification object:nil]
</pre><pre name="code" class="objc" style="font-size:14px;">最后,实现notifi:的方法:
- (void)notifi:(NSNotification *)noti{ NSDictionary *dic = noti.userInfo; //获取网络状态 NSInteger status = [[dic objectForKey:@"AFNetworkingReachabilityNotificationStatusItem"] integerValue]; switch (status) { case AFNetworkReachabilityStatusNotReachable:{ NSLog(@"无网络连接"); } break; case AFNetworkReachabilityStatusReachableViaWWAN:{ NSLog(@"移动蜂窝网络"); } break; case AFNetworkReachabilityStatusReachableViaWiFi:{ NSLog(@"wifi网络"); } break; case AFNetworkReachabilityStatusUnknown:{ NSLog(@"无法获取网络状态"); } break; default: break; } }
</pre><pre name="code" class="objc">还有需要注意一点,不要忘记注销观察者,代码如下:
-(void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self]; }
</pre><span style="font-size:18px">这样就可以实现实时监控网络连接状态的目的了.</span><span style="font-size:14px"></span><pre>
相关文章推荐
- iOS 使用AFNetworking框架检测当前网络连接状态
- IOS AFNetworking2.2 setReachabilityStatusChangeBlock检测网络连接状态
- IOS检测网络连接状态
- iOS 使用Reachability检测网络状态
- IOS检测网络连接状态
- IOS使用Reachability实时检测网络连接状况
- ios 开发之使用Reachability检测网络状态
- IOS使用Reachability实时检测网络连接状况
- IOS使用Reachability实时检测网络连接状况
- iOS开发之检测网络连接状态
- IOS检测网络连接状态
- IOS检测网络连接状态(转)
- IOS使用Reachability实时检测网络连接状况
- IOS检测网络连接状态
- ios 开发之使用Reachability检测网络状态
- IOS检测网络连接状态
- IOS检测网络连接状态(转)
- ios 开发之使用Reachability检测网络状态
- ios 开发之使用Reachability检测网络状态