标签:
通常在APP的某些界面,需要通过网络获取数据更新界面。应用程序通过建立网络状态监听,当网络从断开变为连接状态后,自动刷新页面数据,因此不需要用户手动刷新页面,提升了产品的用户体验。
一、包含头文件
#import "Reachability.h"
同时在ViewContorller中添加实例变量:Reachability *_networkConn;
二、建立网络变化监听
网络变化包括从断开变为连接、连接变为断开两种情况,任意一种情况发生,app都会收到网络变化通知。 在viewDidLoad方法中添加如下代码:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
_networkConn = [Reachability reachabilityForInternetConnection];
[_networkConn startNotifier];
其中,networkStateChange函数会在网络发生变化的时候被调用。
三、获取网络状态
在接受到网络变化通知后,通知并没有告知当前的网络状态,所以我们并不知道当前网络是处于断开还是连接,需要主动探测,探测方法如下:
- (BOOL)isNetworkEnable
{
BOOL flag = YES;
Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"];
switch ([r currentReachabilityStatus]) {
case NotReachable:
flag = NO;
break;
case ReachableViaWWAN:
break;
case ReachableViaWiFi:
break;
default:
break;
}
return flag;
}
四、刷新界面
- (void)networkStateChange
{
if ([self isNetworkEnable]) {
//在此刷新界面
}
}
标签:
原文地址:http://blog.csdn.net/wang_lichun/article/details/42804087