iOS 开发 网络实时监测
2017-02-13 17:20
351 查看
原文地址:iOS 开发 网络实时监测作者:咚咚大魔王 首先在AppDelegate.h添加头文件"Reachability.h",导入框架SystemConfiguration.frame 下面是代码:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//开启网络状况的监听
[[NSNotificationCenter
defaultCenter]
addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification
object:nil];
self.hostReach =
[Reachability
reachabilityWithHostName:@"www.baidu.com"] ;
//开始监听,会启动一个run
loop
[self.hostReach startNotifier];
}
-(void)reachabilityChanged:(NSNotification *)note
{
Reachability *currReach = [note
object];
NSParameterAssert([currReach
isKindOfClass:[Reachability class]]);
//对连接改变做出响应处理动作
NetworkStatus status = [currReach
currentReachabilityStatus];
//如果没有连接到网络就弹出提醒实况
self.isReachable = YES;
if(status == NotReachable)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接异常"
message:nil delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
[alert release];
self.isReachable = NO;
return;
}
if (status==kReachableViaWiFi||status==kReachableViaWWAN)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接信息"
message:@"网络连接正常"
delegate:nil cancelButtonTitle:@"确定"
otherButtonTitles:nil];
//
[alert show];
[alert release];
self.isReachable = YES;
}
}
然后在每个页面的viewWillAppear:加上:
-(void)viewWillAppear:(BOOL)animated
{
[super
viewWillAppear:YES];
AppDelegate *appDlg = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if(appDlg.isReachable)
{
NSLog(@"网络已连接");//执行网络正常时的代码
}
else
{
NSLog(@"网络连接异常");//执行网络异常时的代码
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接异常"
message:nil delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
这样就可以检查到在运行程序时网络突然的中断和连接。
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//开启网络状况的监听
[[NSNotificationCenter
defaultCenter]
addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification
object:nil];
self.hostReach =
[Reachability
reachabilityWithHostName:@"www.baidu.com"] ;
//开始监听,会启动一个run
loop
[self.hostReach startNotifier];
}
-(void)reachabilityChanged:(NSNotification *)note
{
Reachability *currReach = [note
object];
NSParameterAssert([currReach
isKindOfClass:[Reachability class]]);
//对连接改变做出响应处理动作
NetworkStatus status = [currReach
currentReachabilityStatus];
//如果没有连接到网络就弹出提醒实况
self.isReachable = YES;
if(status == NotReachable)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接异常"
message:nil delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
[alert release];
self.isReachable = NO;
return;
}
if (status==kReachableViaWiFi||status==kReachableViaWWAN)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接信息"
message:@"网络连接正常"
delegate:nil cancelButtonTitle:@"确定"
otherButtonTitles:nil];
//
[alert show];
[alert release];
self.isReachable = YES;
}
}
然后在每个页面的viewWillAppear:加上:
-(void)viewWillAppear:(BOOL)animated
{
[super
viewWillAppear:YES];
AppDelegate *appDlg = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if(appDlg.isReachable)
{
NSLog(@"网络已连接");//执行网络正常时的代码
}
else
{
NSLog(@"网络连接异常");//执行网络异常时的代码
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接异常"
message:nil delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
这样就可以检查到在运行程序时网络突然的中断和连接。
相关文章推荐
- iOS 使用 AFNetwork && Alamofire 实时监测网络状况
- iOS 开发 AFNetworking实现网络状态的实时监测
- iOS 开发 网络实时监测
- iOS开发实时监测网络状态Reachability
- iOS开发------之runtime的运用-类与对象&&&获取当前网络状态
- iOS开发-调用google map并显…
- IOS 开发 loadView 和 viewDidLoad…
- iOS 网络链接 Reachability的使用
- iOS 开发之网络——文件上传&文件下载
- cocos2d-x ios 开发环境搭建
- (转)IOS 开发调用打电话,发短信
- iOS 分享新浪微博开发通知
- ios开发 UITableCell 可重用问题
- iOS开发网络篇—监测网络状态
- iOS开发网络篇—监测网络状态
- ios 开发环境 复制的另一台电脑
- UIScrollView 滚动视图—IOS开发
- SQLibs iOS开发常用代码库
- [ios开发异常]whose view&n…