iOS開發之監聽網路連接,改變,斷開
做iOS開發時,我們需要監控/監聽網路狀況,蘋果提供了Reachability.h, Reachability.m。
匯入Reachability.h
我們可以在 MainViewController的viewDidLoad方法內部寫上:
[self checkReachability];
之後,具體方法如下
#pragma mark#pragma mark Reachability Methods#pragma mark- (void)checkReachability{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; self.reachability = [Reachability reachabilityForInternetConnection]; [self.reachability startNotifier]; [self updateInterfaceWithReachability:self.reachability];}/*! * Called by Reachability whenever status changes. */- (void) reachabilityChanged:(NSNotification *)note{ Reachability* curReach = [note object]; NSParameterAssert([curReach isKindOfClass:[Reachability class]]); [self updateInterfaceWithReachability:curReach];}- (void)updateInterfaceWithReachability:(Reachability *)reachability{ NetworkStatus status = [reachability currentReachabilityStatus]; AppDelegate *appDelegate = ((AppDelegate *) [[UIApplication sharedApplication] delegate]); if(status == NotReachable) { //No internet NSLog(@"No Internet"); appDelegate.isNetworkReachable = NO; [_reachabilityImage setImage:[UIImage imageNamed:@"stop-32.png"]]; } else if (status == ReachableViaWiFi) { //WiFi NSLog(@"Reachable WIFI"); appDelegate.isNetworkReachable = YES; [_reachabilityImage setImage:[UIImage imageNamed:@"Airport.png"]]; } else if (status == ReachableViaWWAN) { //3G NSLog(@"Reachable 3G"); appDelegate.isNetworkReachable = YES; [_reachabilityImage setImage:[UIImage imageNamed:@"WWAN5.png"]]; }}