博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS网络-AFNetworking检测网络状态
阅读量:6271 次
发布时间:2019-06-22

本文共 2020 字,大约阅读时间需要 6 分钟。

可以使用AFN框架中的AFNetworkReachabilityManager来监听网络状态的改变,也可以利用苹果提供的Reachability来监听。建议在开发中直接使用AFN框架处理。

示例代码如下:

-(void)afn{    //1.创建网络状态监测管理者    AFNetworkReachabilityManager *manger = [AFNetworkReachabilityManager sharedManager];    //2.监听改变    [manger setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {        /*         AFNetworkReachabilityStatusUnknown          = -1,         AFNetworkReachabilityStatusNotReachable     = 0,         AFNetworkReachabilityStatusReachableViaWWAN = 1,         AFNetworkReachabilityStatusReachableViaWiFi = 2,         */        switch (status) {            case AFNetworkReachabilityStatusUnknown:                NSLog(@"未知");                break;            case AFNetworkReachabilityStatusNotReachable:                NSLog(@"没有网络");                break;            case AFNetworkReachabilityStatusReachableViaWWAN:                NSLog(@"3G|4G");                break;            case AFNetworkReachabilityStatusReachableViaWiFi:                NSLog(@"WiFi");                break;            default:                break;        }    }];

Reachablity 是一个iOS下检测,iOS设备网络环境用的库。

苹果官方提供的Doc,下载地址:

示例代码如下:
因为Reachablity只能监听网络状态的状况,不能监听它的改变,所以采用通知的方式
-(void)viewDidLoad{    [super viewDidLoad];    //注册通知    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityStatusChange) name:kReachabilityChangedNotification object:nil];    //创建对象    Reachability *r = [Reachability reachabilityForInternetConnection];    [r startNotifier];    self.r = r;}-(void)reachabilityStatusChange{    if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus == ReachableViaWWAN) {        NSLog(@"3G|4G");        return;    }    if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus == ReachableViaWiFi) {        NSLog(@"wifi");        return;    }    NSLog(@"未知");}-(void)dealloc{    [[NSNotificationCenter defaultCenter]removeObserver:self];    [self.r stopNotifier];}

 

转载于:https://www.cnblogs.com/liugengqun/p/5140903.html

你可能感兴趣的文章
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
计算机网络与Internet应用
查看>>
Django 文件下载功能
查看>>
走红日本 阿里云如何能够赢得海外荣耀
查看>>
磁盘空间满引起的mysql启动失败:ERROR! MySQL server PID file could not be found!
查看>>
点播转码相关常见问题及排查方式
查看>>
[arm驱动]linux设备地址映射到用户空间
查看>>
弗洛伊德算法
查看>>
【算法之美】求解两个有序数组的中位数 — leetcode 4. Median of Two Sorted Arrays
查看>>
精度 Precision
查看>>
Android——4.2 - 3G移植之路之 APN (五)
查看>>
Linux_DHCP服务搭建
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
网吧维护工具
查看>>