私は iPad アプリケーションを開発しており、ユーザーがインターネットに接続できるかどうかを判断する最善の方法を見つけようとしています。ユーザーが接続していない場合は、キャッシュされたデータを読み込みます。それ以外の場合は、新しいデータを読み込みます。これに Apple の到達可能性クラスを使用しようとしていますが、これが正しく行われているかどうかを確認したかったのです。applicationDidFinishLaunchingWithOptions で、私はこれをやっています:
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
Reachability hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
[hostReach startNotifer];
次に、私の reachabilityChanged: は次のようになります。
- (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];
}
}
現在、これは WiFi iPad で完全に機能しています。これが 3G iPad で動作することを確認したいだけです。私がこれを正しく行っているかどうか教えてください。