iOS APP利用系统自带库监听网络状态
2015-03-06 17:06
405 查看
一个成熟的APP在启动的时候需要对网络状态进行检查,一般来说只需要检查一次,所以一般可以在delegate。m函数中调用,也可以定义静态变量标识判断,下面将列出按照静态变量标示来实现检查操作
static BOOL isFirst = NO;
static BOOL canCheckNetwork = NO;
// 在这里做一个网络可用的检查就可以了
// Reachability 苹果公司提供的检查网络的第三方库
// AFN 在Reachability基础上做一个自己的检查网络的库 基本上一样
/* 使用方法
*/
// 下面这行需要做一次. 监听网络状态 AppDelegate
if (isFirst == NO) {
// 网络只有在startMonitoring完成后才可以使用检查网络状态
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
canCheckNetwork = YES;
}];
isFirst = YES;
}
// 只能在监听完善后才能调用
BOOL isOK = [[AFNetworkReachabilityManager sharedManager] isReachable];
if (isOK == FALSE && canCheckNetwork == YES) {
// 网络有问题
NSError *error = [NSError errorWithDomain:@"网络错误" code:100 userInfo:nil];
if (cb) cb(nil, nil, error);
return;
}
//四种状态
typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
AFNetworkReachabilityStatusUnknown = -1,
AFNetworkReachabilityStatusNotReachable = 0,
AFNetworkReachabilityStatusReachableViaWWAN = 1,
AFNetworkReachabilityStatusReachableViaWiFi = 2,
};
static BOOL isFirst = NO;
static BOOL canCheckNetwork = NO;
// 在这里做一个网络可用的检查就可以了
// Reachability 苹果公司提供的检查网络的第三方库
// AFN 在Reachability基础上做一个自己的检查网络的库 基本上一样
/* 使用方法
*/
// 下面这行需要做一次. 监听网络状态 AppDelegate
if (isFirst == NO) {
// 网络只有在startMonitoring完成后才可以使用检查网络状态
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
canCheckNetwork = YES;
}];
isFirst = YES;
}
// 只能在监听完善后才能调用
BOOL isOK = [[AFNetworkReachabilityManager sharedManager] isReachable];
if (isOK == FALSE && canCheckNetwork == YES) {
// 网络有问题
NSError *error = [NSError errorWithDomain:@"网络错误" code:100 userInfo:nil];
if (cb) cb(nil, nil, error);
return;
}
//四种状态
typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
AFNetworkReachabilityStatusUnknown = -1,
AFNetworkReachabilityStatusNotReachable = 0,
AFNetworkReachabilityStatusReachableViaWWAN = 1,
AFNetworkReachabilityStatusReachableViaWiFi = 2,
};
相关文章推荐
- iOS 使用AFNetWorking监听APP网络状态变化(可用于更改缓存策略、提示网络等)
- iOS开发中实时监听app的网络连接状态问题
- 【iOS开发-68】APP下载案例:利用tableView自带的cell布局+缓存池cell复用时注意button状态的检查
- IOS-利用AFNetworking监听网络状态
- iOS 实时监听app的网络连接状态
- iOS 实时监听app的网络连接状态
- iOS 使用AFNetWorking监听APP网络状态变化(可用于更改缓存策略、提示网络等)
- 【iOS开发-68】APP下载案例:利用tableView自带的cell布局+缓存池cell复用时注意按钮状态的检查
- IOS--利用AFNetworking监听网络状态
- iOS监听网络状态的变化
- ios-监听网络状态
- iOS 利用AFnetworking判断网络状态
- IOS [推送相关] 在app 内获取系统设置页的通知开关状态,然后使app 和system 开关保持一致 【此功能只适用月IOS8 +】
- ios实时监听网络状态
- iOS 网络状态监听和检查,
- iOS使用Reachability监听网络状态
- 利用AFNetworking监听网络状态
- 社交网络编程API之iOS系统自带分享
- ios网络状态监听
- IOS--苹果自带类实现网络监听