2014-01-26 7 views
1

저는 iOS를 처음 사용하고 있으며 방금 작업을 시작했습니다. 네트워크가 연결되지 않았을 때와 타사 클래스를 사용하여 다시 연결될 때를 감지하기 위해 네트워크 연결 가능성을 구현하려고합니다. 네트워크 손실을 감지 할 수 있지만 네트워크 연결이 끊어진 후에 다시 감지 할 수 없습니다. 때 네트워크를 감지 https://github.com/tonymillion/Reachability도달 가능성 : 네트워크가 다시 연결될 때 감지

사람이 나에게 방법을 제안 할 수 있습니다 :이 링크에서 타사 도달 클래스를 다운로드 한

// NSURLConnectionDelegate method: Handle the connection failing 
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 
{ 
    Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
    [reachability startNotifier]; 
    NetworkStatus internetStatus = [reachability currentReachabilityStatus]; 

    if(internetStatus==NotReachable) 
    { 
    NSLog(@" Network Disconnected") 
    } 
} 

: 나는 잘 작동 단선을 확인하려면 다음의 조건을 사용하고 있습니다 다시 연결 되었습니까? 이에서

+0

안녕하세요. 타사 Reachability 클래스를 다운로드 한 링크를 언급 해 주시겠습니까? Apple에서 다운로드 했습니까? –

답변

1

당신은 단순히 같은 클래스의 통지를 배치 할 수 있습니다 :

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; 
을 그래서 당신이 지금 필요한 것은이 알림을 수신하기 위해 가입하는 것입니다

그런 다음이 방법을 사용하여 네트워크 연결이 언제 다시 시작되는지, 즉 연결 상태가 변경되는지 관찰 할 수 있습니다.

- (void) reachabilityChanged:(NSNotification *)note 
{ 
Reachability* currentReach = [note object]; 
NSParameterAssert([currentReach isKindOfClass:[Reachability class]]); 
    if (internetStatus != NotReachable) 
    { 
    // handle UI as per your requirement 
    } 

} 
+0

감사합니다. 그것은 일했다. – user3228871

1

당신은 때마다 reachabilty 상태를합니다 변경하는 것을 의미

[reachability startNotifier]; 

라고을 내라..

[[NSNotificationCenter defaultCenter] 
addObserver:self 
selector:@selector(reachabilityStatusChanged:) 
name:kReachabilityChangedNotification 
object:nil]; 

reachabilityStatusChanged: 방법 구현 :

- (void)reachabilityStatusChanged:(NSNotification *)notice { 
    Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus internetStatus = [reachability currentReachabilityStatus]; 

    if (internetStatus != NotReachable) 
    { 
     // do what you need 
    } 

}