2012-11-13 3 views
0

안녕하세요. 일부 게시물을 읽었으며 현재 기기가 Wi-Fi 또는 셀룰러에서 실행되고 연결이 끊어 질지를 결정하기 위해 Apple의 "도달 가능성"샘플을 사용할 수 있음을 확인했습니다. . 그러나 나는 다른 클래스에 내 애플 리케이션에서 webviews 및 HTTP 호출을 많이 가지고, 그래서 내가 연결을 시작합니다 모든 단일 메서드에서 수표를 호출해야 할 것 같아요. 네트워크의 상태를 확인하고 휴대 전화의 모든 트래픽을 허용 할 수있는 방법이 있는지 묻고 싶습니다. 고마워.ios가 전체 앱에 대해 셀룰러를 허용하지 않음

+0

도달 가능성을 사용하면이 문제를 해결하는 NSNotification "kReachabilityChangedNotification"연결 변경을 관찰 할 수 있습니다. –

답변

0

NSNotification을 통해 브로드 캐스팅되는 ReachableViaWiFi 네트워크 상태를 찾고 있습니다. 당신은 설치 할 수있는이 같은 코드에서 그 최대 :

@property (nonatomic, assign) NetworkStatus currentNetStatus; 

...

- (void) startListeningForWifi{ 
      Reachability* hostReach = [Reachability reachabilityWithHostName:@"hostName"]; 
      [hostReach startNotifier]; 

      // reachability set up 
      // Observe the kNetworkReachabilityChangedNotification. When that notification is posted, the 
      // method "reachabilityChanged" will be called. 
      [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; 
} 

- (void)reachabilityChanged: (NSNotification*)note{ 
    Reachability *curReach = [note object]; 
    self.currentNetStatus = [curReach currentReachabilityStatus]; 
} 

그 다음은 네트워크 호출을하기 전에 currentNetStatus를 확인하기 쉽습니다

. 그것이 ReachableViaWiFi과 같지 않으면 무선 랜을 사용하지 않는 것입니다.

+0

내 문제를 해결하는 방법에 대한 답변을 주셔서 감사합니다. 하지만이 경우는 좀 더 복잡합니다. 현재 파일을 다운로드하는 연결이 있고 Wi-Fi에서 네트워크 상태가 셀룰러로 변경되면 연결을 즉시 취소 할 수 있습니까? – user1653545

+0

이 [post] (http://stackoverflow.com/questions/11070175/how-to-cancel-network-request-with-afnetworking) – foggzilla

+0

에 따라 요청을 취소하면 질문에 대한 답변을 얻을 수 있습니까? – foggzilla

관련 문제