开源中国iOS客户端 --- Reachability (3)

说明

用于判断网络是否可用包括Wi-Fi和移动网络(2/3/4G)。

Reachability Github 地址
Github版本Reachability相对于苹果官网的,这个更加高级、更加好用的Reachability,支持ARC、支持block、使用GCD方式来通知网络的变化。

  • 定义网络状态的枚举类型NetworkStatus
typedef NS_ENUM(NSInteger, NetworkStatus) {
    // Apple NetworkStatus Compatible Names.
    NotReachable = 0,           // 不可到达
    ReachableViaWiFi = 2,       // 通过WiFi可到达
    ReachableViaWWAN = 1     // 通过无线广域网可到达(WWAN,即Wireless Wide Area Network,无线广域网。
};
  • 定义网络链接变化通知标志符
extern NSString *const kReachabilityChangedNotification;

官方使用例程

Block Example

//定义Reachability类 同时初始化链接地址
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];

//配置链接成功后的代码
reach.reachableBlock = ^(Reachability*reach)
{
    // 这就是所谓的后台线程,如果你要更新的用户界面,它需要发生在主线程,就像这样:

    dispatch_async(dispatch_get_main_queue(), ^{
      NSLog(@"REACHABLE!");
    });
};
//配置链接失败后的代码
reach.unreachableBlock = ^(Reachability*reach)
{
    NSLog(@"UNREACHABLE!");
};

// 启动通知
[reach startNotifier]; 

NSNotification Example

//定义Reachability类 同时初始化链接地址
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];

// 不使用移动运营商的网络
reach.reachableOnWWAN = NO;

// 添加观察者当网络发生变化时调用`reachabilityChanged:`方法处理
[[NSNotificationCenter defaultCenter] addObserver:self
                                              selector:@selector(reachabilityChanged:)
                                             name:kReachabilityChangedNotification
                                           object:nil];

// 启动通知
[reach startNotifier];

参考

iOS网络监测区分2.3.4G
在stackoverflow介绍关于Reachability的用法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值