Прослушивание сеанса 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 делай что хочешь

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/

Другие вопросы по тегам