2012-09-08 2 views
0

내 응용 프로그램에서 내 네트워크 연결을 확인하기위한 reacheability 클래스를 사용 ...확인 네트워크 가용성

Reachability *reach = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus netStatus = [reach currentReachabilityStatus];  
    if (netStatus==NotReachable) 
    { 
     NSLog(@"NR"); 
    } 
내가 네트워크 상태 변화 (즉 도달에서 네트워크 상태 변화가 notreachable 때 때 찾을 필요가

그리고 그 그 반대).

의견을 찾을 수있는 대표가 있습니까?

답변

1

Apple의 Reachability 클래스를 사용하는 것이 좋습니다. Here은 Apple의 샘플 응용 프로그램입니다.

또한이 링크를 확인하십시오. 이 플래그 kReachabilityChangedNotification을 사용하는 프로젝트

#import "Reachability.h" 
-(BOOL)isHostAvailable 
{ 
    //return NO; // force for offline testing 
    Reachability *hostReach = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus netStatus = [hostReach currentReachabilityStatus]; 
    return !(netStatus == NotReachable); 
} 
+0

음 덕분에 .....하지만 내 응용 프로그램은 네트워크 상태의 변화를 추적 할 수 HW ?? – Icoder

+0

응용 프로그램에서 타이머를 추가하고 네트워크 연결 방법을 호출합니다. 이 같은 http://stackoverflow.com/questions/4538168/how-to-check-internet-status-in-iphone –

+0

글쎄, 그게 내 애플 리케이션의 다른 스레드를 차단할 거라고 생각 bt .... – Icoder

-1

사용 도달 가능성 " 클래스

는 애플 대리자 홍수 방법을 추가 네트워크 상태의 변화를 찾아서 0123에 전달했다. 여기

코드입니다 : UR 답변

NSString *host = @"https://www.apple.com"; // Put your host here 

     // Set up host reach property 
     hostReach = [Reachability reachabilityWithHostname:host]; 

          // Enable the status notifications 
          [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; 
          [hostReach startNotifier]; 

    - (void) reachabilityChanged: (NSNotification*)note 
{ 
    Reachability *reachability = [note object]; 
    NSParameterAssert([reachability isKindOfClass:[Reachability class]]); 
    if (reachability == hostReach) { 
     Reachability *reach = [Reachability reachabilityForInternetConnection]; 
     NetworkStatus netStatus = [reach currentReachabilityStatus];  
     if (netStatus==NotReachable) 
     { 
      NSLog(@"notreacheable"); 
     } 
     else { 
      NSLog(@"reacheable"); 
      [[NSNotificationCenter defaultCenter]postNotificationName:@"startUpdatingTable" object:nil]; 
     } 
    } 
} 
+0

글쎄 주셔서 감사합니다 대답 .....하지만 내 애플 리케이션 변경 사항을 추적 할 수 있습니다 네트워크 상태에 ?? – Icoder