【发布时间】:2017-09-20 08:02:58
【问题描述】:
目前我正在从服务器下载文件,效果很好。
我的问题是,在实际下载开始之前,我怎么知道 url 是否恢复 capability?
下面是一些代码 sn-p,
class Downloader:NSObject,URLSessionDownloadDelegate {
/*
SOME PROPERTIES & DECLARATIONS
*/
override init() {
super.init()
let backgroundSessionConfiguration = URLSessionConfiguration.background(withIdentifier: url.absoluteString)
backgroundSessionConfiguration.networkServiceType = .default
self.defaultSession = URLSession(configuration: backgroundSessionConfiguration, delegate: self, delegateQueue: OperationQueue.main)
}
func start(_ block:DownloaderCompletionHandler?) {
guard self.input == nil else { return }
guard self.output == nil else { return }
if let data = self.resumableData {
self.downloadTask = self.defaultSession.downloadTask(withResumeData: data)
}else {
let request = URLRequest(url: self.input!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 0.60)
self.downloadTask = self.defaultSession.downloadTask(with: request)
}
self.downloadTask.resume()
}
func pause() {
self.downloadTask.cancel { (data) in
self.resumableData = data
}
}
}
请在这种情况下指导我。 提前致谢
【问题讨论】:
-
简历容量是什么意思?您是指下载中断后恢复的能力吗?
-
@user1046037,是的,我已经编辑了这部分问题。你能举个例子吗?
-
所有
URLSessionTasks 都可以暂停和恢复。只需调用函数suspend/resume。自己试试,我自己没试过。据我所知,它与特定 URL 无关
标签: ios swift xcode8 nsurlsession nsurlsessiondownloadtask