AFNetwork监听网络失效
发布日期:2022-04-05 00:52:17
浏览次数:3
分类:博客文章
本文共 2582 字,大约阅读时间需要 8 分钟。
监听网络状态大家都不陌生,尤其是使用AFNetwork监听,
我的思路是对AFNetwork进行二次封装,然后直接以属性的形式输出结果
#pragma mark - 属性/// 网络状态@property (nonatomic, assign, readonly) NetworkState state;
@interface NetworkStateTool ()@property (nonatomic, assign, readwrite) NetworkState state;@end
#pragma mark -- 开启网络监听- (void)startNetworkStateMonitoring { AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager]; //开启网络监听 [mgr startMonitoring]; [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusUnknown: // 未知网络 NSLog(@"未知网络"); self.state = NetworkStateUnknown; break; case AFNetworkReachabilityStatusNotReachable: // 没有网络(断网) NSLog(@"没有网络"); self.state = NetworkStateNone; break; case AFNetworkReachabilityStatusReachableViaWWAN: // 手机自带网络 NSLog(@"手机自带网络"); self.state = NetworkStateWWAN; break; case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI NSLog(@"WIFI"); self.state = NetworkStateWiFi; break; } }]; }
按照官方的说法,我们只需要调用一次startNetworkStateMonitoring方法,
即只需要调用startMonitoring方法一次,即可在setReachabilityStatusChangeBlock中收到实时结果
实测:
WIFI--->断网 可以实时监测
但是
断网--->WIFI 无法实时监测,即setReachabilityStatusChangeBlock中收不到结果
只有重新调用setReachabilityStatusChangeBlock方法,才可以拿到实时结果
故修改代码如下:直接通过方法获取
+ (NetworkState)networkState { NetworkState __block state; AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager]; [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusUnknown: // 未知网络 NSLog(@"未知网络"); state = NetworkStateUnknown; break; case AFNetworkReachabilityStatusNotReachable: // 没有网络(断网) NSLog(@"没有网络"); state = NetworkStateNone; break; case AFNetworkReachabilityStatusReachableViaWWAN: // 手机自带网络 NSLog(@"手机自带网络"); state = NetworkStateWWAN; break; case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI NSLog(@"WIFI"); state = NetworkStateWiFi; break; } }]; //开启网络监听 [mgr startMonitoring]; return state;}
转载地址:https://www.cnblogs.com/lijianyi/p/14705812.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月01日 15时10分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
《Advanced PHP Programming》读书笔记
2019-04-27
让我们谈谈RAID
2019-04-27
jQuery日期选择器插件date-input
2019-04-27
PHP使用curl_multi_add_handle并行处理
2019-04-27
NP问题
2019-04-27
AT&T与Intel汇编语言的比较
2019-04-27
javascript解析json
2019-04-27
WinDbg安装与使用
2019-04-27
推荐阅读的多核编程技术书籍
2019-04-27
维基百科上的算法和数据结构链接很强大
2019-04-27
选择排序
2019-04-27
PHP session回收机制
2019-04-27
最新的全球编程语言,操作系统,web服务器等使用率分析报告
2019-04-27
用C语言写PHP扩展
2019-04-27
PHP Extension programming
2019-04-27
海量数据处理
2019-04-27
PHP防止注入攻击
2019-04-27
多路IO复用模型 select epoll 等
2019-04-27
Linux Epoll介绍和程序实例
2019-04-27
output_buffering详细介绍
2019-04-27