gpt4 book ai didi

swift - 在 Swift 3.0 中使用 URLSession DownloadTask 时,多个下载不起作用

转载 作者:行者123 更新时间:2023-11-30 12:51:24 24 4
gpt4 key购买 nike

我尝试使用 session 下载任务下载多个文件,并发生以下情况:

  1. 首次下载开始。我猜它会创建一个临时文件,例如 CFNetworkDownload_Kx54Ke.tmp。

  2. 在我的第二次下载开始后不久,顺便说一下,它使用相同的 session 对象,但使用不同的下载任务对象。

  3. 我发现我的第一次下载停止并出现以下错误:

    __NSCFLocalDownloadFile:打开 ioChannel 时出现错误 2,文件:/private/var/mobile/Containers/Data/Application/E88FD72B-AB73-402E-B264-D5827BA2023C/tmp/CFNetworkDownload_Kx54Ke.tmp

  4. 我的第二次下载完成时没有出现任何问题。

我的 session 代码。我只是将 URL 传递给此方法,并且 session 在应用程序的生命周期中仅创建一次:

//creating session only once in the app life cycle

init() {

super.init()
let configuration = URLSessionConfiguration.default
self.session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
}

//calling download method from my viewcontroller
func download(url : URL ){
let request = URLRequest(url: url)
let downloadTask : URLSessionDownloadTask

downloadTask = self.session!.downloadTask(with: request)


downloadTask.resume()
}

更新:在操作队列 block 内调用每个不同的下载操作是有效的,我可以看到下载是并行的。不过,我仍然想确认 urlsessiondownload 任务中的 Swift 3 是否会出现这种行为。

最佳答案

我发现了这个问题。对我来说这是一个愚蠢的错误。我在每次下载调用时都会清除临时目录。首先下载清除临时目录并创建一个临时文件。第二次下载调用会清除临时目录,包括第一次下载的临时文件。

我必须将清除临时目录调用移动到仅调用一次的位置。

关于swift - 在 Swift 3.0 中使用 URLSession DownloadTask 时,多个下载不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40902472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com