2014-10-21 6 views
5

Apple Reachability 샘플 코드의 Reachability 클래스가 사용자가 장치를 비행기 모드로 전환하면 상당히 지연되는 것처럼 보입니다. 비행기 모드로가는 사용자와 실제 알림 사이에 대략 5 초의 간격이 있습니다.iOS 8의 도달 가능성이 지연 되었습니까?

알림을받는 더 빠른 방법이 있습니까? 또는이 운영체제의 새로운 방식?

+0

5 초가 꽤 좋다. IMO – Undo

+1

손이 닿지 않는 네트워크 호출에 반응하는 경우 불충분하다. – cynistersix

답변

0

알림에 의존하지 않고 연결을 폴링하는 샘플을 만들었습니다. 따라서 Reachability 샘플을 사용하고 연결 상태를 확인하면 연결되어 있는지 확인할 수 있습니다.

- (NetworkStatus)currentReachabilityStatus 
{ 
    NSAssert(_reachabilityRef != NULL, @"currentNetworkStatus called with NULL SCNetworkReachabilityRef"); 
    NetworkStatus returnValue = NotReachable; 
    SCNetworkReachabilityFlags flags; 

    if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags)) 
    { 
     if (_alwaysReturnLocalWiFiStatus) 
     { 
      returnValue = [self localWiFiStatusForFlags:flags]; 
     } 
     else 
     { 
      returnValue = [self networkStatusForFlags:flags]; 
     } 
    } 

    return returnValue; 
} 

이 방법을 사용하면 알림을 제 시간에 받기를 기대하지 않고 연결 상태를 알 수 있습니다.