我想从我的服务器端的url阵列循环下载pdf文件,当用户关闭viewController并打开主单时,我想使其在后台运行,也以主形式打开我们可以再次打开下载ViewController,以查看下载的进度。我已经使用Alamofire进行了此操作,并将其用作递归(在下载每个文件完成并使用Poplast函数的for-loop之后再次调用自身来弹出来自数组的URL(,但问题是我无法跟踪该请求背景,我无法检查背景请求是否已经在运行。如果我们不能在Alamofire做到这一点,urlsession可以实现我想做的事吗?
请帮助。我真的需要您的所有帮助,也是我是iOS和Stackoverflow的初学者,如果我错了某个地方,请原谅我。
到目前为止,我从您的描述中了解您需要同步所有任务。在您的情况下,您可以使用 dispatchGroup 。它允许工作的汇总同步。您可以使用它提交多个不同的pdf URL,以下载和跟踪 group.notify methot。
检查下面的示例代码:
func fetchPdfFiles(){
let group = DispatchGroup()
let urlList = ["Pdfurl1", "Pdfurl2", "Pdfurl3"]
// start your progressbar if you like
for str in urlList {
group.enter()
call_your_alamofire_Request(url: str, onCompletion: { (response) in
do {
//save your pdf
//Update progress bar
} catch let error {
print("Error:", error)
//Handle error
}
group.leave()
})
}
group.notify(queue: .main) {
print("- all pdfs Download done")
// Finally you need to do what ever if you like
//Stop progressbar
}
}