我创建了一个简单的NSURLSession DownloadTask从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秒后关闭进度对话框,但仍然没有收到数据)
我已经搜索了谷歌,但到目前为止还没有找到任何信息,所以我会在搜索更多信息时把这个问题留在这里。
非常感谢!
超时是NSURLSession在completionHandler块中给您的错误之一。它是NSURLErrorTimedOut = -1001
。
委托方法
- URLSession:task:didCompleteWithError:
如果是NSURLErrorTimedOut
,请检查NSError,按照您的意愿进行
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/#//apple_ref/doc/constant_group/URL_Loading_System_Error_Codes