在 iOS 中使用 NSUrlSession 一次下载 1 个文件
Posted
技术标签:
【中文标题】在 iOS 中使用 NSUrlSession 一次下载 1 个文件【英文标题】:Download 1 file at a time using NSUrlSession in iOS 【发布时间】:2016-02-02 05:10:06 【问题描述】:我是downloading
在我的ios
应用程序中使用NSUrlSession
的多个文件。我想一次只下载一个文件。但它是downloading
一次多个文件。请提出一种一次下载一个文件的方法。
我试过这个属性:
sessionConfiguration.HTTPMaximumConnectionsPerHost = 1
但如果它们托管在不同的服务器上,它也会下载多个文件。请提出一种方法来做到这一点
【问题讨论】:
NSUrlSession 在后台下载文件并在完成时提供完成处理程序。您可以在上一个的完成处理程序中下载下一个。但是,为什么要一次下载一个。那只会更慢。 【参考方案1】:你有两个选择:
同步:菊花链你来自completionHandler
的请求,在前一个完成或失败时触发一个新的NSURLSession
resume
。
异步:每个操作必须在下一个操作开始之前完成,并且等待直到完成信号使用信号量。执行每个NSURLSession
resume
调度的线程将等待该操作完成。见https://***.com/a/21205992/218152
同步/异步说明
这些选项都不建议在主线程上运行您的操作:sync/async 只是指负责调度的后台线程。
【讨论】:
以上是关于在 iOS 中使用 NSUrlSession 一次下载 1 个文件的主要内容,如果未能解决你的问题,请参考以下文章
在IOS中使用web服务时发生NSURLSession内存泄漏
在 iOS8 中使用 NSUrlSession 使用流请求进行后台上传