现在的位置: 首页 > 综合 > 正文

Reachability 网络状态的使用和封装

2018年04月19日 ⁄ 综合 ⁄ 共 1085字 ⁄ 字号 评论关闭

在程序开发工程中,不可避免的要使用到网络功能去拉取数据。而手机端又非常重视用户体验,你需要了解怎么检测网络功能

苹果提供了SCNetworkReachability API, 通过它可以拿到设备当前网络的详细信息,当网络状态改变了,还可以通过提交一个监听来获取回调。

并且还提供了一个Reachability的项目示范怎么处理

// 创建一个Reachability的方法
+ (instancetype)reachabilityWithHostName:(NSString *)hostName;
+ (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress;
+ (instancetype)reachabilityForInternetConnection;
+ (instancetype)reachabilityForLocalWiFi;

// 操作reachability方法
- (BOOL)startNotifier;
- (void)stopNotifier;
- (NetworkStatus)currentReachabilityStatus;
- (BOOL)connectionRequired;

到这里也可以了,开发者使用公共方法来得到Reachability实体,检测实体的变化。

但每次都要这么整一下是不是太麻烦了,本着能懒则懒的原则,我对它又进行了一次封装

#define REACHABLE_CHANGED_NOTIFICATION @"REACHABLE_CHANGED_NOTIFICATION"

@interface ReachableSingleton : NSObject

@property (nonatomic,retain)Reachability *currentReachablity;
@property (nonatomic)NetworkStatus currentStatus;

+ (ReachableSingleton *) sharedInstance;//单例
-(BOOL)isConnected;
-(BOOL)isConnectedByWifi;
-(BOOL)isConnectedByWwan;
@end

从头文件可以看出来,我实现了包含了Reachability的ReachableSingleleton单例,通过单例调用判断方法,直接返回网络状态

工程文件已经打包上传,有需要的自取:http://download.csdn.net/detail/mangosnow/7556905 不需要积分

抱歉!评论已关闭.