我正在开发一个 iPad 应用程序,并试图找出确定用户是否可以连接到 Internet 的最佳方法。如果用户没有连接,我会加载缓存的数据,否则我会加载新的数据。我正在尝试为此使用 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。你能告诉我我这样做是否正确吗?