创建工具类ManagerUtility
- .h中
#import <Foundation/Foundation.h>
@interface ManagerUtility : NSObject
/** 判断网络状态 */
+ (NSString *)getNetWorkStates;
/** 判断是否有网络 */
+ (BOOL)isOnNetWork;
@end
- .m中
#import "ManagerUtility.h"
@implementation ManagerUtility
// 获取网络状态
+ (NSString *)getNetWorkStates
{
UIApplication *app = [UIApplication sharedApplication];
NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
NSString *state = [[NSString alloc]init];
int netType = 0;
// 获取到网络返回码
for (id child in children) {
if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
// 获取到状态栏
netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];
switch (netType) {
case 0:
state = @"无网络";
break;
case 1:
state = @"2g";
break;
case 2:
state = @"3g";
break;
case 3:
state = @"4g";
break;
case 4:
state = @"wifi";
break;
default:
break;
}
}
}
// 根据状态选择
return state;
}
// 根据状态判断是否有网络
+ (BOOL) isOnNetWork
{
NSLog(@"%@",[self getNetWorkStates]);
if ([[self getNetWorkStates] isEqualToString:@"无网络"] ||
[[self getNetWorkStates] isEqualToString:@""]) {
return NO ;
}else{
return YES ;
}
}
@end
使用方法:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if ([ManagerUtility isOnNetWork] == YES) {
NSLog(@"有网络");
}else{
NSLog(@"无网络");
}
}
以上转自http://blog.csdn.net/junfeng09/article/details/48435807