Мне нужно скачивать файлы с моего сервера.Многократная загрузка поддерживается.Когда я нажимаю «загрузить», мне нужно проверить сетевое подключение и подключение к серверу, Что сделано .
Вот проблема!
Во время загрузки, если сервер становится недоступным,это создает некоторые проблемы.Поэтому я должен проверить подключение к серверу через 5 секунд и вывести предупреждение о том, что сервер не работает.Я использовал таймер для проверки подключения.Но проблема в том, что во время нескольких загрузок представление предупреждений отображается столько же раз, сколько и количество загрузок.И если сервер становится доступным между ними, то приложение зависает.Но я мог видеть, что код таймера все еще работает ..
Пример кода:
-(void) myFunction {
if ([networkCheck isHostReachable]) {
if (![ServerConnectivity isServerUp:myUrl]) {
serverStatusAlert = YES;
}
if (serverStatusAlert) {
UIAlertView *serverDownAlert = [[UIAlertView alloc]initWithTitle:@"Error" message:@"Server is down. Please try after sometimes." delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok",nil];
[serverDownAlert show];
[serverDownAlert release];
serverDownAlert = nil;
[self cancelAllDownload];
connectivityTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(checkServerStatus) userInfo:nil repeats:YES];
}
}
else {
NSLog(@"No network connection...");
}
}
-(void)checkServerStatus {
if ([ServerConnectivity isServerUp:myUrl]) {
[connectivityTimer invalidate];
connectivityTimer = nil;
serverStatusAlert = NO;
//function to resume downloads
}
else {
//pause downloads
}
}