0

我创建了一个简单的 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 秒过后关闭进度对话框并且仍然没有收到数据)

我已经搜索了谷歌,但到目前为止还没有找到任何信息,所以我会在搜索更多信息时将这个问题留在这里。

非常感谢!

4

1 回答 1

-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

于 2015-06-24T03:44:52.507 回答