2013-02-21 2 views
0

Я хочу проверить подключение к Интернету в своем приложении. Выполняя это, я использую следующий код. В чем разница между статусом InternetStatus и хостом. Что я должен использовать, чтобы проверить, имеет ли ipad подключение к Интернету или нет.Разница между internetStatus и hostStatus

-(void) checkNetworkStatus:(NSNotification *)notice 
{ 
    // called after network status changes 
    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus]; 
    switch (internetStatus) 
    { 
     case NotReachable: 
     { 
      //NSLog(@"The internet is down."); 
      //self.internetActive = NO; 
      //NSLog(@"A gateway to the host server is down."); 
      //self.hostActive = NO; 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Connection Failed" 
                  message:@"No internet connection" 
                  delegate:nil 
                cancelButtonTitle:@"Exit" 
                otherButtonTitles:nil]; 
      [alert setDelegate:self]; 
      [alert show]; 
      [alert release]; 


      break; 
     } 
     case ReachableViaWiFi: 
     { 
      //NSLog(@"The internet is working via WIFI."); 
      //self.internetActive = YES; 

      break; 
     } 
     case ReachableViaWWAN: 
     { 
      //NSLog(@"The internet is working via WWAN."); 
      //self.internetActive = YES; 

      break; 
     } 
    } 

    NetworkStatus hostStatus = [hostReachable currentReachabilityStatus]; 
    switch (hostStatus) 
    { 
     case NotReachable: 
     { 
      //NSLog(@"A gateway to the host server is down."); 
      //self.hostActive = NO; 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Connection Failed" 
                   message:@"No internet connection" 
                  delegate:nil 
                cancelButtonTitle:@"Exit" 
                otherButtonTitles:nil]; 
      [alert setDelegate:self]; 
      [alert show]; 
      [alert release]; 

      break; 
     } 
     case ReachableViaWiFi: 
     { 
      //NSLog(@"A gateway to the host server is working via WIFI."); 
      //self.hostActive = YES; 

      break; 
     } 
     case ReachableViaWWAN: 
     { 
      //NSLog(@"A gateway to the host server is working via WWAN."); 
      //self.hostActive = YES; 

      break; 
     } 
    } 
} 
+0

Не могли бы вы показать нам код, который вы используете для создания hostReachable и internetReachable? Во всяком случае, это просто имена переменных. –

ответ

1

internetStatus или hostStatus только имя экземпляра вы можете использовать любое имя для статуса. но если вы не установите хост, вы можете использовать internetStatus для доступа в Интернет, если он доступен или недоступен, по умолчанию apple проверяет доступность Интернета на интернет-шлюз или подключение к Интернету, в этом случае мы не знаем имя хоста для проверки возможности подключения к Интернету, однако вы можете использовать hostStatus или любое имя экземпляра для определенного хоста, вы можете установить произвольный хост самостоятельно, например www.google.com, и проверить, доступна ли его. процедура аналогична.

В основном состояние зависит от вашего имени хоста, которое может быть по умолчанию, или вы можете установить его самостоятельно;

hostReachable = [Reachability reachabilityWithHostName: @"www.google.com"]; 
[hostReachable startNotifier]; 
Смежные вопросы