2

我的应用需要下载一批具有以下要求的文件:

  1. 批处理应该按顺序处理(绝不以同时下载文件为代价)。
  2. 如果应用程序关闭,下载应该在后台继续。
  3. 用户可能随时触发其他下载。这些下载应优先于批处理。
  4. 鉴于用户可能会触发批处理中任何文件的下载,如果文件已经下载,则不应再次下载。我应该能够在开始实际下载之前检查文件是否已经下载,或者将其从队列中删除。

这当然可以通过大量样板代码来实现(此处发布太多)。使用 iOS 7 全新NSURLSession和/或AFNetworking 2.0最简单的方法是什么?

4

1 回答 1

0

我的镜头是:

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

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

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

NSData *downloadData = [NSData dataWithContentsOfURL:yourURL];
于 2013-11-14T15:23:23.560 回答