2012-11-06 4 views
1

내 프로젝트에서는 Apple에서 제공하는 Reachability 클래스를 사용하고 있습니다. 인터넷에 연결되어 있지 않으면 경고 메시지가 표시됩니다. 시뮬레이터에서 테스트 할 때 모든 것이 잘 작동하지만 iPad에서 실행할 때 인터넷이없는 경우 경고 메시지가 표시되지 않습니다.Reachability는 시뮬레이터에서 작동하지만 장치에서는 작동하지 않습니다.

iOS 5.0에서 코드를 실행 중입니다.

도움을 주시면 감사하겠습니다.

편집 :

-(BOOL)isInternetConnectionPresent{ 

Reachability *objReachability = [Reachability reachabilityForInternetConnection];  
NetworkStatus internetStatus = [objReachability currentReachabilityStatus]; 

if(internetStatus != NotReachable) 
{ 
    return YES; 
} 


    return NO; 
} 

UPDATE : 디버그 NSLog 사용

. SIM 카드가없는 경우에도 WWAN에 문제가있는 것 같습니다. iPad를 다시 시작한 & &을 Wi Fi에 다시 켭니다. 이제 제대로 작동합니다. 도움을 주셔서 감사합니다.

+1

당신이있어 아마 당신은 몇 가지 세부 사항을 더 추가하면 더 나은 답변을 얻을거야. 예를 들어 구현 코드를 게시 할 수 있습니다. 또한 일부 디버깅을 시도하십시오 : 적어도 일부 NSLog는. '도달 가능성 '은 물론 장치에서도 작동해야합니다. 나는 많은 애플 리케이션을 사용합니다. –

+0

내가 말했듯이, 그것은 시뮬레이터에서 잘 작동한다 !! ... 나는 코드를 추가하기 위해 내 질문을 편집했다. – footyapps27

+0

그냥 프로젝트를 정리하고 장치에서 응용 프로그램을 삭제해야 할 수도 있습니다 ... 어쨌든 : 당신은 정말로 옵저버를 사용하는 것이 좋습니다 - 가장 좋은 예제 중 하나를 찾을 수 있습니다 [여기] (http://stackoverflow.com/a/3597085/653513) –

답변

1

당신은 모든 NetworkStatus 및 크로스 디바이스 와이파이 연결 상태를 확인합니다 확인해야 다시

예 : 다음 코드는 완벽하게 작동하고 내 경우

// to check if, wifi connected properly in current device. 
- (BOOL)networkCheck { 

    Reachability *wifiReach = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus netStatus = [wifiReach currentReachabilityStatus]; 

    switch (netStatus) 
    { 
     case NotReachable: 
     { 
      NSLog(@"NETWORKCHECK: Not Connected");   
      return NO; 
      break; 
     } 
     case ReachableViaWWAN: 
     { 
      NSLog(@"NETWORKCHECK: Connected Via WWAN"); 
      return NO; 
      break; 
     } 
     case ReachableViaWiFi: 
     { 
      NSLog(@"NETWORKCHECK: Connected Via WiFi"); 
      return YES; 
      break; 
     } 
    } 
    return false; 

} 
+0

방금 ​​인터넷을 확인하기 위해 내 코드를 추가했습니다. 동일한 기능을 수행해야합니다. – footyapps27

+0

내 대답을 적용하고 NSlogs를 확인하십시오. 정확한 이유, 연결 이유 –

0

iOS 5. 여기 WIFI와 인터넷 연결을 확인하고 있습니다.

- (NSString *)stringFromStatus:(NetworkStatus) status { 
NSString *string; 
switch(status) { 
    case NotReachable: 
     string = @"Not Reachable"; 
     break; 
    case ReachableViaWiFi: 
     string = @"Reachable via WiFi"; 
     break; 
    case ReachableViaWWAN: 
     string = @"Reachable via WWAN"; 
     break; 
    default: 
     string = @"Unknown"; 
     break; 
} 
return string; 

}

------------------------ 지금 확인할 수있는 코드의 라인을 다음과.

Reachability *reach =[Reachability reachabilityForLocalWiFi] ; 
NetworkStatus status = [reach currentReachabilityStatus]; 
NSLog(@"%@", [self stringFromStatus: status]); 

if ([[self stringFromStatus: status] isEqualToString: @"Not Reachable"]) 
{ 
    UIAlertView *alert = [[UIAlertView alloc] 
          initWithTitle:@"Connection Failure !" 
          message:@"Your Device is not Connected to any active WIFI Connection." 
          delegate:self 
          cancelButtonTitle:@"OK" 
          otherButtonTitles:nil]; 
    [alert show]; 
} 
else 
{ //connected to internet. 

}

관련 문제