iOS NSURLSession收听超时

时间:2015-06-24 02:25:36

标签: ios delegates timeout nsurlsessiondownloadtask

我创建了一个简单的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 个答案:

答案 0 :(得分:-2)

超时是NSURLSession在completionHandler块中提供的错误之一。它是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