陈斌彬的技术博客

Stay foolish,stay hungry

iOS 使用 Reachability 实时检测网络连接状况

iOS使用Reachability实时检测网络连接状况

//在程序的启动处,开启通知
- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  //.....

//开启网络状况的监听
[[NSNotificationCenter defaultCenter] addObserver:self
       selector:@selector(reachabilityChanged:)
    name: kReachabilityChangedNotification
   object: nil];
hostReach =[[Reachability reachabilityWithHostName:@"www.google.com"] retain];//可以以多种形式初始化
[hostReach startNotifier]; //开始监听,会启动一个run loop
      [self updateInterfaceWithReachability: hostReach];
  //.....
}

// 连接改变

- (void)reachabilityChanged: (NSNotification*)note
{
Reachability*curReach = [note object];
NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
[self updateInterfaceWithReachability:curReach];
}

//处理连接改变后的情况

- (void)updateInterfaceWithReachability: (Reachability*)curReach
{
   //对连接改变做出响应的处理动作。

      NetworkStatus status=[curReach currentReachabilityStatus];

if (status== NotReachable) { //没有连接到网络就弹出提实况
UIAlertView *alert= [[UIAlertView alloc] initWithTitle:@"MyApp Name"
                         message:@"NotReachable"
                         delegate:nil
                         cancelButtonTitle:@"YES" otherButtonTitles:nil];
                         [alert show];
                         [alert release];
}

}