iOS开发之监测网络状态
一、说明
在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的:
(1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)
(2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验
WIFI\3G网络:自动下载高清图片
低速网络:只下载缩略图
没有网络:只显示离线的缓存数据
苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态
https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip
二、监测网络状态
Reachability的使用步骤
添加框架SystemConfiguration.framework

添加源代码

包含头文件
#import "Reachability.h"
代码示例:

1 #import "YYViewController.h"
2 #import "Reachability.h"
3
4 @interface YYViewController ()
5 @property (nonatomic, strong) Reachability *conn;
6 @end
7
8 @implementation YYViewController
9
10 - (void)viewDidLoad
11 {
12 [super viewDidLoad];
13
14 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
15 self.conn = [Reachability reachabilityForInternetConnection];
16 [self.conn startNotifier];
17 }
18
19 - (void)dealloc
20 {
21 [self.conn stopNotifier];
22 [[NSNotificationCenter defaultCenter] removeObserver:self];
23 }
24
25 - (void)networkStateChange
26 {
27 [self checkNetworkState];
28 }
29
30 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
31 {
32
33 }
34
35 - (void)checkNetworkState
36 {
37 // 1.检测wifi状态
38 Reachability *wifi = [Reachability reachabilityForLocalWiFi];
39
40 // 2.检测手机是否能上网络(WIFI\3G\2.5G)
41 Reachability *conn = [Reachability reachabilityForInternetConnection];
42
43 // 3.判断网络状态
44 if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
45 NSLog(@"有wifi");
46
47 } else if ([conn currentReachabilityStatus] != NotReachable) { // 没有使用wifi, 使用手机自带网络进行上网
48 NSLog(@"使用手机自带网络进行上网");
49
50 } else { // 没有网络
51
52 NSLog(@"没有网络");
53 }
54 }
55 @end
56
57 // 用WIFI
58 // [wifi currentReachabilityStatus] != NotReachable
59 // [conn currentReachabilityStatus] != NotReachable
60
61 // 没有用WIFI, 只用了手机网络
62 // [wifi currentReachabilityStatus] == NotReachable
63 // [conn currentReachabilityStatus] != NotReachable
64
65 // 没有网络
66 // [wifi currentReachabilityStatus] == NotReachable
67 // [conn currentReachabilityStatus] == NotReachable
iOS开发之监测网络状态的更多相关文章
- iOS网络通讯——监测网络状态:Reachability(可达性)
1.iOS平台是按照一直有网络连接的思路来设计的,开发者利用这一特点创造了很多优秀的第三方应用.大多数的iOS应用都需要联网,甚至有些应用严重依赖网络,没有网络就无法正常工作. 2.在你的应用尝试通过 ...
- iOS开发 - 检测网络状态(WIFI、2G/3G/4G)
本文转载至 http://blog.csdn.net/wangzi11322/article/details/45580917 检测网络状态 在网络应用中,需要对用户设备的网络状态进行实时监控,目的是 ...
- iOS开发系列-网络状态监控
概述 在网络应用中,需要对用户设别的网络状态进行实时监控,可以让用户了解自己的网络状态出现网络问题提示用户. 一般在网络状态不好的场景下需要做一些处理比如: WIFT/3G/4G网络:自动下载高清图. ...
- iOS开发-关于网络状态的判断
在判断网络状态这个问题上,苹果提供了一个叫Reachability的第三方库,但是这个库并不能真正的检测我们的网络状态,我也是在调试程序的时候发现的.详情可以阅读这个博客http://blog.csd ...
- iOS开发系列-线程状态
概述 线程从创建到销毁中间存在很多种状态. 线程的状态 通过NSThread创建一条线程,开发者需要负责线程的创建和执行,线程的销毁由系统决定.创建一个继承NSThread的FMThread类,重写d ...
- IOS开发 程序关闭状态接通知
- iOS开发 tabBarController选中状态
self.tabBarController.selectedIndex = 0; // 默认是0:
- iOS开发网络篇—监测网络状态(转)
文章转载自:http://www.cnblogs.com/wendingding/p/3950114.html iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时 ...
- iOS开发网络篇—监测网络状态
iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行 ...
随机推荐
- 人人网FED CSS编码前端开发规范
文件相关规范 1.文件名必须由小写字母.数字.中划线-组成 2.文件必须用utf-8编码 3.文件引入可通过外联或内联方式引入: 3.1 外联方式:<link rel=”stylesheet” ...
- MySql数据库3【优化2】sql语句的优化
1.SELECT语句优化 1).利用LIMIT 1取得唯一行[控制结果集的行数] 有时,当你要查询一张表是,你知道自己只需要看一行.你可能会去的一条十分独特的记录,或者只是刚好检查了任何存在的记录数, ...
- linux 下面 opcache 拓展
PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展,只需要在编译安装的时候, 如果你使用--disable-all参数 禁用了默认扩展的构建, 那么必须使用--enable-opcach ...
- rpmbuild构建包时的宏定义的赋值
rpmbuild -bb SPECS/git.spec --define="_topdir `pwd`" rpmbuild --rebuild SRPMS/git.src.rp ...
- Linux系统管理技术手册——第6章 添加新用户
6.1/etc/passwd文件 用户登录时Linux识别用户的文件/etc/passwd /etc/passwd包括7个字段: 登录名(不超过32位,使用NIS系统后不超过8位) 经过加密的口令或口 ...
- Xamarin Mono错误: unable to find explicit activity class
unable to find explicit activity class在android开发很常见,网上一般是java的解决办法,对我们这些xamariner就无语了. xamarin中用attr ...
- WPF小程序:贪吃蛇
原文地址:http://hankjin.blog.163.com/blog/static/337319372009535108234/ 一共两个文件:EasterEgg.xaml + EasterEg ...
- SharePoint Designer cannot open site error " the server could not complete your request"
3.SPD cannot open site, in the log :Error when open web service: System.InvalidOperationException: A ...
- android小文章——手机照片上传服务器方法
手机上传:http://blog.csdn.net/bitter_2014/article/details/40618587
- cf D. On Sum of Fractions
http://codeforces.com/problemset/problem/397/D 题意:v(n) 表示小于等于n的最大素数,u(n)表示比n的大的第一个素数,然后求出: 思路:把分数拆分成 ...