【发布时间】:2015-08-24 23:37:25
【问题描述】:
我有一系列要下载的视频文件。我正在使用 for 循环来下载它们中的每一个。但是,当循环运行时,所有文件并行下载,这导致应用程序挂起,UI 冻结,CPU 使用率飙升。
for url in urlArray{
downloadfile(url)
}
我有一个功能可以下载给定 URL 的文件。
func downloadFile(s3Url:String)->Void{
Alamofire.download(.GET, s3Url, destination: destination)
.progress { bytesRead, totalBytesRead, totalBytesExpectedToRead in
println(totalBytesRead)
}
.response { request, response, _, error in
println(response)
}
}
如何更改此设置以使文件不会同时下载?另外,如何检查下载是否完成,以便更新我的 UI?
【问题讨论】:
-
@mattt 你能提供一个例子吗?我尝试将 downloadFile 包装在 NSBlockOperation 中,但它没有用。即: let operation = NSBlockOperation { () -> Void in println("starting download") self.downloadfile(url!) } queue.addOperation(operation)
-
这应该就是它的全部了。什么不工作?
-
@mattt 它仍然会同时下载它们。我现在放弃了