tonymillion/Reachability是GitHub上的一个开源工具类,目測是依据Apple的Reachability Demo改写而成。

该类能够測试到某一网络、主机等的可达性,支持Block语法和监听网络连接状态,很有用。详细使用方法參加GitHub上的说明。

写了个小Demo试用了一下:

- (void)viewDidLoad {
[super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@"Listen" forState:UIControlStateNormal];
[button addTarget:self action:@selector(reachable) forControlEvents:UIControlEventTouchUpInside];
button.frame = CGRectMake(0, 0, 100, 44);
button.center = self.view.center;
[self.view addSubview:button];
} - (void)reachable {
Reachability *reach = [Reachability reachabilityWithHostname:@"www.csdn.net"]; reach.reachableBlock = ^(Reachability *reachability) {
NSLog(@"Reachable");
}; reach.unreachableBlock = ^(Reachability *reachability) {
NSLog(@"Unreachable");
}; [reach startNotifier];
}

Run,点击Listenbutton(整个測试过程仅仅点击一次),然后断开wifi或网线。然后又连上,然后又断开,重复測试。。

。

控制台输出例如以下:

2014-07-24 23:35:54.669 ReachabilityDemo[2247:80409] Reachable
2014-07-24 23:35:59.797 ReachabilityDemo[2247:80409] Unreachable
2014-07-24 23:36:07.401 ReachabilityDemo[2247:80788] Reachable
2014-07-24 23:36:07.421 ReachabilityDemo[2247:80788] Reachable
2014-07-24 23:36:11.279 ReachabilityDemo[2247:80788] Unreachable
2014-07-24 23:36:17.523 ReachabilityDemo[2247:80964] Reachable
2014-07-24 23:36:17.541 ReachabilityDemo[2247:80964] Reachable

能够看到仅仅要reach開始监听网络状态,那么该类会一直监听其状态。

假设想要在reachableBlock和unreachableBlock中做什么处理动作。而且仅仅运行一次,就不要创建多个Reachability类实例进行监听了。否则同一个Block中的动作可能运行多次。

待要完毕的动作完毕后。停止监听即可了,这样两个Block都不会再被运行。

比如:

    reach.reachableBlock = ^(Reachability *reachability) {
NSLog(@"Reachable"); // Do something only once while reachable [reachability stopNotifier];
};

再Run。点击Listenbutton,断开wifi。连接wifi。反复。。。

控制台输出例如以下:

2014-07-24 23:50:56.814 ReachabilityDemo[2453:88238] Reachable

能够看到Block仅仅运行了一次。

tonymillion/Reachability的使用的更多相关文章

  1. iOS中使用 Reachability 检测网络

    iOS中使用 Reachability 检测网络 内容提示:下提供离线模式(Evernote).那么你会使用到Reachability来实现网络检测.   写本文的目的 了解Reachability都 ...

  2. iOS Reachability的基本用法

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  3. 常用三方,Reachability 检测网络连接

    常用三方 Reachability 检 测网络连接 用来检查网络连接是否可用:包括WIFI和 WWAN(3G/EDGE/CDMA等)两种工作模式. 可以从Apple网站下载到: http://deve ...

  4. 【开发记录】iOS中使用 Reachability 检测网络

    如果你想在iOS程序中提供一仅在wifi网络下使用(Reeder),或者在没有网络状态下提供离线模式(Evernote).那么你会使用到Reachability来实现网络检测. 写本文的目的 了解Re ...

  5. 网络状态监測之 Reachability的使用

    先下载 Reachability开源库地址: (一)git hub: https://github.com/tonymillion/Reachability (二)我自己改动的:http://down ...

  6. iOS中使用 Reachability 检测网络区分手机网络类型 WiFi 和2 3 4 G

    如果你想在iOS程序中提供一仅在wifi网络下使用(Reeder),或者在没有网络状态下提供离线模式(Evernote).那么你会使用到Reachability来实现网络检测. 写本文的目的 了解Re ...

  7. iOS比较常用的第三方及实例(不断更新中)

    把平时看到或项目用到的一些插件进行整理,文章后面分享一些不错的实例,若你有其它的插件欢迎分享,不断的进行更新: 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com ...

  8. IOS比较常用的第三方组件及应用源代码(持续更新中)

    把平时看到或项目用到的一些插件进行整理,文章后面分享一些不错的实例,若你有其它的插件欢迎分享,不断的进行更新~ 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com ...

  9. GitHub上值得关注的iOS开源项目

    1.AFNetworking地址:https://github.com/AFNetworking/AFNetworking用于网络请求 2.JSONKit地址:https://github.com/j ...

随机推荐

  1. devexpress 经验笔记

    1.去除 GridView 头上的 "Drag a column header here to group by that column" -->  点击 Run Desig ...

  2. ylbtech-LanguageSamples-Generics(泛型)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Generics(泛型) 1.A,示例(Sample) 返回顶部 “泛型”示例 (C#) ...

  3. HDFS 中向 DataNode 写入数据失败了怎么办

    https://blog.csdn.net/HeatDeath/article/details/79012258 http://wenda.chinahadoop.cn/question/3323 h ...

  4. 【MySQL】海量量数据查询优化

    参考资料: mysql处理海量数据时的一些优化查询速度方法:http://www.cnblogs.com/lingiu/p/3414134.html mysql千万级大数据SQL查询优化:http:/ ...

  5. 使用curl向Solr导入json文件(Windows、Linux均可)

    Linux环境下: 1.进入需要导入的文件所在路径 2.执行: curl "http://IP:8983/solr/目标集合名/update?commit=true" --data ...

  6. 字符串编码原理--PHP数组原理与高级应用

    基础知识 1.有几种表达方式(查看手册)2.单引号和双引号的区别,双引号解析变量.\n,\t等,八进制与十六进制编码 内部存储方式 c语言中怎么表示字符串,结构体存储了字符指针和长度1.字符串可以用[ ...

  7. css水平竖直居中方式

    CSS水平和垂直居中的几种实现方法: 1.单行垂直居中 文字在层中垂直居中vertical-align 属性是做不到的.我们这里有个比较巧妙的方法就是:设置height的高度与line-height的 ...

  8. docker入门——简介

    从这里起航 本系列有感于<第一本Docker书>,当我拿到这本书时感觉如获至宝. 为了培养自己对docker的兴趣,不断鞭策自己,我决定开始写这个系列的博客——<站在蓝鲸的背上思考& ...

  9. 【原】使用StarUML画用例图

    在写一份升级方案的时候,发现文字描述半天,好多句子,依然不容易被人看明白,使用visio画了个流程图,后来觉得画个时序图是最清晰得了. 于是在找了一个工具: startUML,当然,做时序图,建模之类 ...

  10. css - 公众号样式

    /* * @Author: WJ_LONG * @Date: 2018-09-06 15:32:06 * @Last Modified by: WJ_LONG * @Last Modified tim ...