仅在尚未下载的情况下,在后台以低优先级下载iOS 7中的批量文件

时间:2013-11-14 14:19:09

标签: ios ios7 download afnetworking-2 nsurlsession

我的应用需要下载一批符合以下要求的文件:

  1. 批处理应该按顺序进行处理(绝不会以同时下载文件为代价)。
  2. 如果应用已关闭,下载应在后台继续。
  3. 用户可以随时触发其他下载。这些下载应优先于批次。
  4. 鉴于用户可能会触发批量下载任何文件,如果已下载文件,则不应再次下载。我应该能够在开始实际下载之前检查文件是否已经下载,或者从队列中删除它。
  5. 这当然可以用很多样板代码来实现(这里发布的内容太多了)。使用iOS 7全新NSURLSession和/或AFNetworking 2.0执行此操作的最简单方法是什么?

1 个答案:

答案 0 :(得分:0)

我的镜头是:

  • 创建一个只处理1次下载的NSOperation子类。
  • 设置2 NSOperationQueues,高优先级队列和低优先级队列。您还可以为每个队列设置不同的并发操作。

对于每次下载,您都可以在其中一个队列中添加操作。

下载文件的最简单方法可能甚至不是AFNetworking或NSURLSession,但这取决于您的要求。如果你只需要一个简单的下载,你可以使用这样的东西:

NSData *downloadData = [NSData dataWithContentsOfURL:yourURL];