如何从 url 数组循环下载 swift4 中的 pdf

How to loop download pdf in swift4 from array of url

我想从我的服务器端从 url 数组循环下载 pdf 文件,我想在用户关闭 viewcontroller 并打开主窗口时在后台制作它 运行窗体,同样在主窗体中我们可以再次打开下载viewcontroller查看下载进度。我已经用 Alamofire 完成了它并将它用作递归(在下载每个文件完成并使用带有 popLast 函数的 for 循环从数组中弹出 url 后再次调用自身)但问题是我无法跟踪在后台的请求,我无法检查后台请求是否已经 运行ning。如果我们在 alamofire 中做不到,urlsession 是否可以实现我想要做的?

请帮忙。我真的需要你的所有帮助,而且我是 IOS 和 Whosebug 的初学者,如果我在某处有误,请原谅我。

到目前为止,我从您的描述中了解到您需要同步所有任务。在您的情况下,您可以使用 DispatchGroup。它允许工作的聚合同步。您可以使用它提交多个不同的 pdf URL 以通过 group.notify 方法下载和跟踪它们何时全部完成。

检查下面的示例代码:

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
 }
}