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. Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得 --转

    Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得 通过前6节的Demo制作演示,大家应该已经相当熟悉这款Silverlight-2D游戏场景 ...

  2. centos6.9安装xampp后报错:egrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

    1.centos6.9安装xampp(xampp-linux-x64-7.0.21-0-installer.run)后启动的时候,报错: egrep: error while loading shar ...

  3. linux如何安装xampp,以及融合dvwa

    1.官网下载:https://www.apachefriends.org/download.html 2.赋予执行权限 [admin@19-56 ~]$ chmod +x xampp-linux-x6 ...

  4. 《linux 内核全然剖析》 chapter 4 80x86 保护模式极其编程

    80x86 保护模式极其编程       首先我不得不说.看这章真的非常纠结...看了半天.不知道这个东西能干嘛.我感觉唯一有点用的就是对于内存映射的理解...我假设不在底层给80x86写汇编的话.我 ...

  5. Microsoft SQL Server 2008 R2

    1概述 Microsoft SQL Server 2008 R2 提供完整的企业级技术与工具,帮助您以最低的总拥有成本获得最有价值的信息.您可以充分享受高性能,高可用性,高安全性,使用更多的高效管理与 ...

  6. flask_admin model官方文档学习

    文档地址:http://www.minzhulou.com/docs/flask-admin/api/mod_model.html model在flask_admin算是比较重要的部分,根据文档稍微的 ...

  7. table表头固定

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. WIN7怎样把屏幕改为16位色

    1 右击桌面,选择屏幕分辨率   2 选择高级设置   3 点击"监视器"选项卡,把颜色改为16位.   4 屏幕会暂时黑屏一段时间,随后主题将自动切换为基础版(失去Areo效果) ...

  9. mac打开所有软件源

    sudo spctl --master-disable

  10. openerp所用QWEB2的调试笔记

    [1] 调式qweb模板时, 可以脱离openerp环境 阅读一下openerp目录 qweb目录中的几个html文件,可以作为起步 在浏览器下, 可以这样运行这些文件 http://127.0.0. ...