2015-06-24 2 views
0

Я создал простой NSURLSessionDownloadTask для загрузки из URL, с его классом, имеющими делегат NSURLSession:IOS 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, но не нашел никакой информации до сих пор, поэтому я оставлю этот вопрос здесь, пока я ищу дополнительную информацию.

Большое спасибо!

ответ

-2

Тайм-аут - одна из ошибок, которую NSURLSession даст вам в завершении блока Handler. Это NSURLErrorTimedOut = -1001.

в методе делегата

- URLSession:task:didCompleteWithError: 

Проверьте NSError, если это NSURLErrorTimedOut делать то, что вы хотите

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/#//apple_ref/doc/constant_group/URL_Loading_System_Error_Codes