Ios URLSessionDownloadTask调用用于同时下载多个文件时并不总是有效
我使用此代码同时下载多个资产,但是 偶尔代码会失败 我为此呼叫添加了重试,但这不是一个好的解决方案。 知道下载任务失败的原因吗 是否存在某种限制,例如并发任务的数量? 或者我应该使用特定的队列Ios URLSessionDownloadTask调用用于同时下载多个文件时并不总是有效,ios,swift,Ios,Swift,我使用此代码同时下载多个资产,但是 偶尔代码会失败 我为此呼叫添加了重试,但这不是一个好的解决方案。 知道下载任务失败的原因吗 是否存在某种限制,例如并发任务的数量? 或者我应该使用特定的队列 @objc class Downloader : NSObject { @objc var fileUrl:URL @objc var destinationUrl:URL @objc var dispachGroup:DispatchGroup? @objc var optio
@objc class Downloader : NSObject {
@objc var fileUrl:URL
@objc var destinationUrl:URL
@objc var dispachGroup:DispatchGroup?
@objc var optionalAsset:Bool
@objc var retryCalled:Int
var downloadTask:URLSessionDownloadTask? = nil
@objc init(dispachGroup:DispatchGroup,fileURL: URL , destinationFileUrl: URL, optionalAsset:Bool) {
self.dispachGroup = dispachGroup
self.fileUrl = fileURL
self.destinationUrl = destinationFileUrl
self.optionalAsset = optionalAsset
self.retryCalled = 0
}
@objc func stop() {
downloadTask?.cancel()
}
@objc func preformDownload(delegate:URLSessionDownloadDelegate, delay:TimeInterval, timeout:TimeInterval) {
let sessionConfig = URLSessionConfiguration.default
let operationQueue = OperationQueue()
let urlSession = URLSession(configuration: sessionConfig, delegate: delegate, delegateQueue: operationQueue)
var request = URLRequest(url: self.fileUrl)
request.timeoutInterval = timeout
self.downloadTask?.cancel()
self.downloadTask = urlSession.downloadTask(with: request)
self.downloadTask?.resume()
}
}