2011-11-10 5 views
0

Reachability 클래스를 사용하여 몇 가지 iPhone 응용 프로그램에서 네트워크 연결 및 서버 가용성을 모니터링하고 있습니다.iOS에서 네트워크 연결을 확인하는 올바른 방법

// 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]; 

// Start checking for reachability to myWebService.com 
//Change the host name here to change the server your monitoring 
hostReach = [Reachability reachabilityWithHostName: @"myWebService.com"]; 
[hostReach startNotifier]; 

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

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

나는 악기를 사용하여 응용 프로그램 중 하나 (내 회사 블로그를위한 전용 블로그 리더) 프로파일, 나는 한 동안 네트워크 트래픽의 5.9 메가 비트의 차이를 볼 : 내 AppDelegate에 다음 코드를 내가 노티 파이어를 켰을 때, 그 라인을 주석으로 처리하는 분.

서버에 요청을 보내기 전에 네트워크 연결을 확인하는 적절한 방법은 무엇입니까? 풀 타임으로 연결을 모니터링하지 말아야 할 때만 알 필요가 있습니다.

내 다른 앱이 웹 서비스 API와 통신하여 페이지 및 비디오를 게시하며 게시를 시도하기 전에 해당 서비스에 연결되어 있는지 알고 싶지만 가능한 한 네트워크 트래픽을 최소화하고 싶습니다.

나는 이것이 앱 스토어에서 앱을 승인/거부 할 때 Apple이 찾는 한가지라고 생각합니다.

+0

방금이 [SO] [1]에서 제안 된 기술을 사용했습니다. [1] : http://stackoverflow.com/questions/7015644/ios-reachability-not-recognizing-when-host-is-removed/7016594#comment9733939_7016594 – user523234

+0

그것이 내장되어 AFNetworking 사용해보십시오 서버 상태를 감지하고 블록을 사용하여이를 지원합니다 ... 체크 아웃하십시오! – ahmad

답변

1

요청하기 전에 연결을 확인하는 대신 요청할 때 네트워크 연결 오류를 확인하십시오. 네트워크 상태를 업데이트하려는 경우 주기적으로 요청할 수 있습니다.

관련 문제