添加第三方Reachability 加入需要添加Systemconfiguration.framework
#import"AppDelegate.h"
在didFinishLaunchingWithOptions中添加
/****************************************************/ //网络检测**************** [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"]; [hostReach startNotifier]; /****************************************************/
- (void)reachabilityChanged:(NSNotification*)note{ NSLog(@"==_=="); Reachability* curReach= [note object]; NSParameterAssert([curReach isKindOfClass: [Reachability class]]); [self updateInterfaceWithReachability:curReach]; } // 更新网络状态 - (void)updateInterfaceWithReachability: (Reachability*)curReach { //对连接改变做出响应的处理动作。 NetworkStatus status=[curReach currentReachabilityStatus]; NSUserDefaults * user =[NSUserDefaults standardUserDefaults]; if (status== NotReachable) { //没有连接到网络就弹出提实况 [user removeObjectForKey:@"network"]; [user setBool:NO forKey:@"network"]; [self showAlert:@"网络连接被断开"]; }else{ [user removeObjectForKey:@"network"]; [user setBool:YES forKey:@"network"]; [self showAlert:@"网络连接成功"]; } NSLog(@"%@",[user objectForKey:@"network"]); [[NSNotificationCenter defaultCenter]postNotificationName:@"network" object:user]; } -(void)showAlert:(NSString *)message{ UIAlertView*alert= [[UIAlertView alloc] initWithTitle:message message:nil delegate:nil cancelButtonTitle:@"确定"otherButtonTitles:nil]; [alert show]; }
#import"ViewController.h"
在此viewDidLoad中添加注册通知
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(network:) name:@"network" object:nil]; }
-(void)network:(NSNotification *)note{ id obj = [note object];//获取到传递的对象 NSLog(@"---%@-----",[obj objectForKey:@"network"]); BOOL isOpen = [[obj objectForKey:@"network"] intValue]; NSLog(@"%d",isOpen); if (isOpen) { NSLog(@"--有网络--"); }else{ NSLog(@"--无网络--"); } }
最近学会的一个怎么实现网络实时监控的简易方法。欢迎大家能指出其中不恰当的地方。