Прослушивание сеанса iOS NSURLS
Я создал простой NSURLSessionDownloadTask для загрузки с URL-адреса, а его класс имеет делегатов NSURLSession:
@interface DownloadManager : NSObject <NSURLSessionDataDelegate, NSURLSessionDelegate, NSURLSessionDownloadDelegate, NSURLSessionTaskDelegate>
//...
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
[sessionConfiguration setTimeoutIntervalForRequest:30.0];
[sessionConfiguration setTimeoutIntervalForResource:60.0];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];
NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithURL:self.url];
[downloadTask resume];
Однако я не смог найти метод протокола, который прослушивает тайм-аут задачи загрузки. Есть ли способ прослушать тайм-аут (например, я хотел закрыть диалоговое окно прогресса, когда прошло 30.0 секунд, а данные еще не получены)
Я уже очистил Google, но пока не нашел никакой информации, поэтому оставлю этот вопрос здесь, пока буду искать дополнительную информацию.
Спасибо!
1 ответ
Тайм-аут является одной из ошибок, которые NSURLSession выдаст вам в блоке completeHandler. Это NSURLErrorTimedOut = -1001
,
в методе делегата
- URLSession:task:didCompleteWithError:
проверьте NSError, если это NSURLErrorTimedOut
делай что хочешь