2010-04-15 2 views
1

나는 iPad 응용 프로그램을 개발 중이며 사용자가 인터넷에 연결할 수 있는지를 결정하는 가장 좋은 방법을 찾아 내려하고 있습니다. 사용자가 연결되어 있지 않으면 캐시 된 데이터를로드합니다. 그렇지 않으면 새 데이터를로드합니다. 나는 이것을 위해 Apple reachability 클래스를 사용하려고 노력하고 있으며, 올바르게 수행하고 있는지 알고 싶다. , 지금Apple의 Reachability는 3G 연결에서 작동합니까?

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

    if (internetConnectionStatus == NotReachable) { 
     [viewController getDataOffline]; 
    } else { 
     if (![[NSUserDefaults standardUserDefaults] objectForKey:kFIRST_LAUNCH]) [viewController getCurrentLocation]; 
     else [viewController getData]; 
    } 
} 

을이 와이파이 아이 패드에 대해 완벽하게 작동된다

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; 

Reachability hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain]; 
[hostReach startNotifer]; 

그런 다음 내 reachabilityChanged는 : 다음과 같습니다 applicationDidFinishLaunchingWithOptions, 나는이 일을하고있다. 이 제품이 3G 아이 패드에서 작동하는지 확인하고 싶습니다. 내가 제대로하고 있는지 알려주시겠습니까?

답변

3

예. 도달 가능성 클래스는 원격 호스트에 연결할 수 있는지 확인하기 위해 WiFi와 3G를 모두 사용할 수 있습니다.

사이드 노트로도 응용 프로그램을 시작할 때 항상 캐시 된 데이터를 표시 한 다음 백그라운드에서 새 데이터로 비동기 적으로 업데이트하는 것이 좋습니다. 응용 프로그램의 컨텍스트에 따라 일부 데이터를 항상 사용할 수 있기 때문에 사용자 환경이 훨씬 향상 될 수 있습니다.

자세한 내용은 "iPhone 고급 프로젝트"책의 "인터페이스 개선을위한 팁 및 트릭"이라는 제목의 환상적인 장이 있습니다.

1

네, Reachability 클래스는 네트워크 방법을 사용하여 도달 할 수 있는지 알려줍니다.

관련 문제