2012-09-05 2 views
2

내 IOS 앱에서 Reachability를 사용하여 연결을 결정하고 있습니다. 와이파이 시뮬레이터의 인터넷 연결을 해제하면이 게시물 wifi on iphone simulator아이폰 시뮬레이터와 wifi에서 연결성 사용하기

에서 다음

을 사용할 수 없습니다하지만 전화는 여전히 따라서 연결이 변경되지 않았습니다 무선 인터넷에 연결되어 있습니다. 이것은 모두 잘되고 이해되고 있으며 물론 장치 자체에서 테스트 할 수 있습니다.

그러나 사용자가 Wi-Fi에 연결되어 있지만 Wi-Fi에 아래 스크린 샷과 같은 인터넷 연결이 없다는 오류를 처리하려고합니다.

나는 다음과 같은 방법으로 도달를 사용 :

#pragma mark -() 
- (void)monitorReachability { 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:ReachabilityChangedNotification object:nil]; 

self.hostReach = [Reachability reachabilityWithHostname: @"api.parse.com"]; 
[self.hostReach startNotifier]; 

self.internetReach = [Reachability reachabilityForInternetConnection]; 
[self.internetReach startNotifier]; 

self.wifiReach = [Reachability reachabilityForLocalWiFi]; 
[self.wifiReach startNotifier]; 

}

가 도달 가능성 때마다 상태 변화에 의해 불려 //. - (void) reachabilityChanged : (NSNotification *) note { 도달 범위 * curReach = (도달 가능성 *) [참고 객체]; NSParameterAssert ([curReach isKindOfClass : [Reachability class]]); NSLog (@ "도달 가능성 변경 : % @", curReach); networkStatus = [curReach currentReachabilityStatus];

}

여기 tonymillion의 GitHub의에서 ARC에 대한 도달 가능성을 사용하고

:

사람은 내가 더 나은 오류와의 접속이 상황을 처리하는 방법을 알고 있나요 https://github.com/tonymillion/Reachability? enter image description here

답변

2

다음 클래스를 appellegate하여 모든 클래스에서 사용할 수 있습니다.

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

감사합니다. 위 오류를 구현하는 데 여전히 같은 오류가 발생합니다. 오류 20606 : 1b03] 오류 : 오류 도메인 = NSURLErrorDomain 코드 = -1009 "인터넷 연결이 오프라인 인 것으로 나타납니다." UserInfo = 0xc3748e0 {NSErrorFailingURLStringKey = https : //api.parse.com/2/user_login, NSErrorFailingURLKey = https : //api.parse.com/2/user_login, NSLocalizedDescription = 인터넷 연결이 오프라인으로 표시됩니다. NSUnderlyingError = 0xe0962c0 "인터넷 연결이 오프라인 인 것 같습니다."} (코드 : 100, 버전 : 1.1.0) – StuartM

관련 문제