OC - 18.监听iPhone的网络状态
使用系统的方法来监听网络状态
- 系统的方法是通过通知机制来实现网络状态的监听
实现网络状态监听的步骤
定义Reachability类型的成员变量来保存网络的状态
@property (nonatomic, strong) Reachability *reachability;注册为通知中心的的观察者
// 在通知中心注册观察者
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];
/**
* getNetworkStatus:监听到通知的回调方法
* kReachabilityChangedNotification:通知的类型,即网络状态发生改变时,触发通知
* object:传递给getNetworkStatus回调方法的参数
*/
// 获取并保存网络状态
self.reachability = [Reachability reachabilityForInternetConnection];
// 开始监听
[self.reachability startNotifier];在监听到通知的触发方法中判断网络的状态
- (void)getNetworkStatus
{
if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable)
{
NSLog(@"是WIFI");
}
else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable)
{
NSLog(@"是手机自带网络");
}
else
{
NSLog(@"网络有问题");
}
}将观察者从通知中心移除,停止监听,清空网络监听对象
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[self.reachability stopNotifier];
self.reachability = nil;
}
使用AFNetworking监听网络状态
- 通过AFN监听网络状态比较简单
实现网络状态监听的
获取AFNetworkReachabilityManager的实例
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];设置manager在网络发生变化的时回调的Block
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"----当前网络状态---%zd", status);
}];
/**
* status:表示当前网络的状态,是个枚举类型变量,具有以下取值
* AFNetworkReachabilityStatusUnknown = -1
* AFNetworkReachabilityStatusNotReachable = 0
* AFNetworkReachabilityStatusReachableViaWWAN = 1
* AFNetworkReachabilityStatusReachableViaWiFi = 2
*/开始监听
[manager startMonitoring];
OC - 18.监听iPhone的网络状态的更多相关文章
- iOS网络-06-监听Iphone的网络状态
使用系统的方法来监听网络状态 系统的方法是通过通知机制来实现网络状态的监听 实现网络状态监听的步骤 定义Reachability类型的成员变量来保存网络的状态 @property (nonatomic ...
- linux配置oracle11G监听及本地网络服务 及 数据库建库
配置监听及本地网络服务 在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面. 数据库建库 在oracle用户的图形界面oracle用户中,新开启一个终端 ...
- 监听Listview的滚动状态,是否滚动到了顶部或底部
/** * @author:Jack Tony * @description : 监听listview的滑动状态,如果到了顶部就刷新数据 * @date :2015年2月9日 */ private c ...
- Oracle Net Configuration(监听程序和网络服务配置)
1.在Oracle服务端和客户端都安装完之后,就需要配置监听程序和本地网络服务,以便外部程序和工具的访问,所以Oracle提供了两款自带的工具来配置它们分别是 Net Configuration.Ne ...
- iOS 实时监听app的网络连接状态
实际iOS开发中,在网络通信中我们大部分使用第三方(只谈短链),譬如 AFNetworking.ASIHttpRequest(这个停更了,想必现在没多少人用),swift的 Alamofire 等. ...
- Fiddler-3 配置Fiddler监听iphone的http/https请求
电脑端可以通过Fiddler监听手机端的http请求.需要两个步骤:首先配置Fiddler,再配置手机端. 1 配置 Fiddler 允许远程设备连接: 菜单Tools - Telerik Fiddl ...
- 监听TelephonyManager的通话状态来监听手机的所有的来电
import java.io.FileNotFoundException;import java.io.OutputStream;import java.io.PrintStream;import j ...
- Android 监听手机GPS打开状态
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854942 本文出自[赵彦军的博客] GPS_Presenter package ...
- kali linux: 网卡监听及扫描网络
一.网卡监听: kali不支持内置网卡,仅仅支持usb网卡.我用的虚拟机.首先在虚拟机的可移动设备里打开usb网卡的连接,执行ifconfig命令,如下: eth0接口是本地有线网卡信息,lo接口是本 ...
随机推荐
- [原]RobotFrameWork(二)Ride简单使用及快捷键
一.简单示例 注意:以下操作使用到快捷键的,请先确保没有与其他软件的快捷键设置冲突,比如sogou拼音.有道词典等等 1.启动ride 启动ride方法: 1) 通过界面图标 2) dos命令行: ...
- Web---创建Servlet的3种方式、简单的用户注册功能
说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...
- POJ 3186Treats for the Cows (区间DP)
详见代码 #include <stdio.h> #include <algorithm> #include <string.h> using namespace s ...
- JavaScript高级程序设计28.pdf
classList属性 在操作类名时需要通过className属性添加.删除和替换类名 <div class="bd user disabled">...</di ...
- .net常見面試題(四)
1. .Net.C#.VisualStudio之间的关系是什么? .Net一般指的是.Net Framework,提供了基础的.Net类,这些类可以被任何一种.Net编程语言调用,.Net Frame ...
- ACM2037
这题采用的是贪心算法,暂不会.
- CMDB处理数据流程
客户端代码执行流程: 服务器端接收并处理数据流程:
- Python运行机制
闲来无事,简单画了一下Python的运行机制,纯属娱乐:
- LIS,LDS的另类算法(原)
自己在做有关俄罗斯套娃的题目时,发现自己写出的一个方法可以解决求最长上升子序列(LIS)和最长下降子序列(LDS)的问题. 俄罗斯套娃:这个问题在前一篇中讲的有,在此处就不多讲了~链接 求最长上升子 ...
- sql中时间的一些特殊转换
1.修改时间的秒和微秒 create table a (Dtime datetime);insert into aselect '2013-08-30 17:59:35' union allselec ...