做iOS开发时,我们需要监控/监听网络状况,苹果提供了Reachability.h, Reachability.m。
导入Reachability.h
我们可以在 MainViewController的viewDidLoad方法内部写上:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #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" ]]; } } |
联系客服