2013-05-31 3 views
0

호스트의 연결 가능성을 검사하여 확인하는 데 너무 많은 시간이 걸리는 경우, 내가 도달 할 수있는 피드백이 실제로 무엇을 할 수 있는지 확인하고 싶습니다. 이. 도달 가능성 검사를 4 초 이상 걸리고 내 앱이 오프라인 모드로 계속 작동하도록하려면 취소 가능성을 취소하고 싶습니다. 나는 Reachabiltiy로부터 피드백을 얻을 때까지 내 사용자가 언젠가 기다리게하길 정말로 원하지 않는다. 도달 가능성에 너무 많은 시간이 걸리는 것처럼 어떤 방식 으로든 건너 뛸 수 있습니까?매우 낮은 네트워크에서 Reachabilty의 응답을 얻을 수 없습니다.

- (BOOL)isReachableWithHostName:(NSString *)hostname { 
    BOOL reachable; 
    Reachability *reachability = [Reachability reachabilityWithHostName:hostname]; 
    NetworkStatus internetStatus = [reachability currentReachabilityStatus]; 
    if (internetStatus == NotReachable) { 
     reachable = NO; 
    } else { 
     reachable = YES; 
    } 

    return reachable; 
} 

- (BOOL)isGoogleReachable { 
    return [self isReachableWithHostName:@"google.com"]; 
} 

응답 시간이 4 초 미만인 경우 도달 가능성에서 피드백을 받고 싶다면 어떻게해야합니까?

답변

1
  1. 비동기 메서드를 사용하십시오. 도달 가능성은 도달 가능성이 변경되면 알림을 생성합니다.
  2. 타임 아웃 NSTimer을 추가하고 원하는 시간 초과 후 연결할 수 없다고 가정합니다.
관련 문제