Используйте следующие стандартные вызовы для получения данных с сервера - и стандартное оповещение в случае ошибки - например, нет доступа к inte rnet. Если я выключаю сеть, приложение вылетает, никогда не нажимая на NSLog
вызовы * ответа или * ошибки, никогда не входя в оповещение.
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//this will start the URL call and download in bg
dispatch_async(concurrentQueue, ^{
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:[NSURL URLWithString:@"https://www.websitethatdownloadsdata.com"] completionHandler:^(NSData *myData, NSURLResponse *response, NSError *error) {
NSLog(@"Resp value from NSURL task: %@", response);
NSLog(@"Error value from NSURL task: %@", error);
if (error == nil) {
NSLog(@"Downloading data...");
}
if (error != nil) {
UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"Network Problem" message:@"Cannot download data" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction * actionOK = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//Here Add Your Action
abort();
}];
[alert addAction:actionOK];
[self presentViewController:alert animated:YES completion:nil];
}