//在程序的启动处,开启通知

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    //.....

    //开启网络状况的监听

    [[NSNotificationCenter defaultCenter] addObserver:self

                                             selector:@selector(reachabilityChanged:)

                                                 name: kReachabilityChangedNotification

                                               object: nil];

   Reachability *hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];//可以以多种形式初始化

    [hostReach startNotifier];  //开始监听,会启动一个run loop

    [self updateInterfaceWithReachability: hostReach];

    //.....

    return YES;

}

 

// 连接改变

- (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:@"My App Name"

                                                        message:@"NotReachable"

                                                       delegate:nil

                                              cancelButtonTitle:@"YES" otherButtonTitles:nil];

        [alert show];

        [alert release];

    }

    

}