iOS中判断网络是否联网

// .h文件
#import <Foundation/Foundation.h>

@interface ReachbilityHelper : NSObject

+ (id)sharedReachbility;

/// Wi-Fi是否可用
+ (BOOL)isEnableWiFi;

/// 3G是否可用
+ (BOOL)isEnable3G;

///启动监听
- (void)startObserve;

///网络是否能够连接
- (BOOL)isConnectable;

///是否是Wi-Fi连接
- (BOOL)isWiFi;

///是否通过3g/gprs网络
- (BOOL)is3G;

@end

// .m文件
#import "ReachbilityHelper.h"

// 导入头文件
#import <Reachability.h>

@interface ReachbilityHelper ()
{
    Reachability *hostReachablility;
    NetworkStatus statusNetwork;
}

@end

@implementation ReachbilityHelper

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

+ (id)sharedReachbility
{
    static Reachability *instance;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[self alloc] init];
    });
    
    return instance;
}

- (void)startObserve
{
    //监测网络情况
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(reachabilityChanged:)
                                                 name: kReachabilityChangedNotification
                                               object: nil];
    hostReachablility = [Reachability reachabilityWithHostname:@"www.baidu.com"];
    [_hostReach startNotifier];
}

- (void)reachabilityChanged:(NSNotification *)note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
    statusNetwork = [curReach currentReachabilityStatus];
}

// Wi-Fi是否可用
+ (BOOL)isEnableWiFi
{
    return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
}

// 3G是否可用
+ (BOOL)isEnable3G
{
    return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);
}

//网络是否能够连接
- (BOOL)isConnectable
{
    return statusNetwork != NotReachable;
}

//是否是Wi-Fi连接
- (BOOL)isWiFi
{
    return statusNetwork == ReachableViaWiFi;
}

//是否通过3g/gprs网络
- (BOOL)is3G
{
    return statusNetwork == ReachableViaWWAN;
}

@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值