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

Posted

技术标签:

【中文标题】如何从url数组循环下载swift4中的pdf【英文标题】:How to loop download pdf in swift4 from array of url 【发布时间】:2018-04-05 08:11:43 【问题描述】:

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

请帮忙。我真的需要你的所有帮助,我也是 ios 和 *** 的初学者,如果我在某个地方错了,请原谅我。

【问题讨论】:

【参考方案1】:

到目前为止,我从您的描述中了解到您需要同步所有任务。在您的情况下,您可以使用 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
 

【讨论】:

以上是关于如何从url数组循环下载swift4中的pdf的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Java 中的给定 URL 下载 PDF? [复制]

如何使用 Python 从指向子 URL 的 URL 下载 pdf 文件

从url下载pdf,在flutter中保存到android中的手机本地存储

如何测量从 URL 下载的 PDF 的大小

RN从IOS中的URL获取blob下载docx或pdf

从 API URL 下载 PDF