Когда я должен проверить интернет-соединение
Моему приложению для iPhone требуется интернет.
Должен ли я проверять подключение каждый раз, когда выполняется интернет-функция? Или я должен использовать свой appDelegate для прослушивания сообщений от чего-то вроде класса достижимости, чтобы определить, было ли потеряно соединение, и предупредить пользователя?
Что лучше?
Вот что я сделал в делегате приложения:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
reachability = [[Reachability reachabilityWithHostName:[NSString stringWithFormat:@"http://%@/iSql/" ,[[NSUserDefaults standardUserDefaults] stringForKey:@"serviceIPAddress"]]] retain];
[reachability startNotifier];
return YES;
}
- (void)reachabilityChanged:(NSNotification *)note {
NetworkStatus ns = [(Reachability *)[note object] currentReachabilityStatus];
if (ns == NotReachable) {
if (![networkAlert isVisible]) {
if ([self networkAlert] == nil) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"\n\nNo Internet Connection" message:@"You require an internet connection to retrieve data from the server." delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
[self setNetworkAlert:alert];
[alert release];
}
[networkAlert show];
}
} else {
if ([self networkAlert] != nil) {
[networkAlert dismissWithClickedButtonIndex:0 animated:YES];
}
}
}