我创建了一个简单的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,但到目前为止还没有找到任何信息,所以当我搜索更多信息时,我会在这里留下这个问题。
非常感谢!
答案 0 :(得分:-2)
超时是NSURLSession在completionHandler块中提供的错误之一。它是NSURLErrorTimedOut = -1001
。
在委托方法
中- URLSession:task:didCompleteWithError:
检查NSError是否NSURLErrorTimedOut
做你想做的事情