ios中网络状态的监测

一:苹果官方提供的Reachability示例程序的监测

导入Reachability.h和Reachability.m文件

/**监控网络*/

@property(nonatomic,strong)Reachability*reachability;

//监听通知

[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(getNetworkStatus)name:kReachabilityChangedNotificationobject:nil];

//开始监控网络

self.reachability= [ReachabilityreachabilityForInternetConnection];

[self.reachability startNotifier];

//�只要网络状态改变,就会调用�这个方法查看当前的网络

- (void)getNetworkStatus

{

if([ReachabilityreachabilityForLocalWiFi].currentReachabilityStatus!=NotReachable) {

NSLog(@"wifi");

}elseif([ReachabilityreachabilityForInternetConnection].currentReachabilityStatus!=NotReachable) {

NSLog(@"蜂窝网络");

}else{

NSLog(@"无网络连接");

}

}

需要注意在结束监听时要移除网络监测的通知:

- (void)dealloc

{

[[NSNotificationCenterdefaultCenter]removeObserver:self];

[self.reachability stopNotifier];

self.reachability=nil;

}

二:AFNetworking中的网络状态监测

导入AFNetworking框架...

//开始网络监控

AFNetworkReachabilityManager*mgr = [AFNetworkReachabilityManager sharedManager];

[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

//在block中拿到当前网络状态

NSLog(@"-----当前的网络状态---%zd", status);

}];

[mgr startMonitoring];

status的值�与网络状态的对应如下:

//当前无网络

AFNetworkReachabilityStatusNotReachable=0,

//蜂窝网络

AFNetworkReachabilityStatusReachableViaWWAN =1,

//wifi

AFNetworkReachabilityStatusReachableViaWiFi =2,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容