需要注意的地方:在获取完网络之后,需要Reachability移除这个对象,[self removeNetworkListener], 不然会一直加载
1.下载苹果官方工具类:https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip
2.有用的文件只有两个,Reachability.h,Reachability.m
3.在需要检测的地方导入头文件 #import "Reachability.h"
引入成员变量 @property (nonatomic) Reachability *reachability;
4.代码:
-(void)listenNetwork{
//注册网络状态通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(networkStatusChanged:) name:kReachabilityChangedNotification object:nil];
//获取Reachability对象
self.reachability = [Reachability reachabilityForInternetConnection];
//开始监听网络变化
[self.reachability startNotifier];
// 立即进行一次初始的网络状态检测
NetworkStatus networkStatus = [self.reachability currentReachabilityStatus];
[self networkStatusChangedWithNetworkStatus:networkStatus];
}
- (void)networkStatusChanged:(NSNotification*)notification {
Reachability*reachability = (Reachability*)notification.object;
NetworkStatusnetworkStatus = [reachabilitycurrentReachabilityStatus];
[self networkStatusChangedWithNetworkStatus:networkStatus];
}
- (void)networkStatusChangedWithNetworkStatus:(NetworkStatus)networkStatus {
// 判断是否有网络连接
if(networkStatus ==NotReachable) {
NSLog(@"无网络连接");
}else{
//这里调用自己加载数据的方法
NSLog(@"有网络连接");
}
}- (void)dealloc{
[self removeNetworkListener];
}
-(void)removeNetworkListener{
[self.reachability stopNotifier];
[[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];
self.reachability = nil;
}