ios - 我应该为这个完整的场景使用操作队列吗?

标签 ios nsurlsession nsoperation nsoperationqueue nsurlsessiondownloadtask

我需要执行一个场景,步骤如下:

  1. 使用用户提供的一些搜索参数进行网络调用
  2. 然后,解析其 JSON 响应并创建模型实体
  3. 然后,对于创建的每个实体,如果它有关联的图像 URL,则调用相应的服务来下载此类图像,并在下载完成时将其显示在 UICollectionView 中。

在下载我需要的 N 个图像时,我需要处理并发网络调用。用户应该可以取消当前的搜索流程并开始新的搜索流程。此外,我应该考虑到某个图像的单元格尚未显示或已出队。所以,我的问题是:哪种方法最好?

  • 直接使用URLSessionURLSessionDownloadTask 执行第一次网络调用(非并发)和JSON 响应解析,并使用OperationOperationQueue 用于后续步骤。如果用户想要取消当前搜索。
  • 使用 OperationOperationQueue 执行整个过程。
  • 还有其他更合适的方法吗?

最佳答案

最好的方法是进行同步或异步调用以进行第一次服务调用。完成后,同步解析json,如果要下载图片,使用懒加载概念(异步调用)加载显示图片。

关于ios - 我应该为这个完整的场景使用操作队列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41279053/

相关文章:

ios - 在 iOS8 中以编程方式禁用 'Hey Siri'

ios - NSURLConnection 和 NSUrlSession 之间的确切区别?

swift - 如何通过 Swift URLSession 使用 cURL 请求

ios:我有一个旧项目,当我登录时,出现了一个问题

ios - 如何为 iPhone 录制过滤后的视频?

ios - 如何设置全局变量来指定http请求之间的时间?

ios - 一堆 gcd 请求

ios - 如何获取所有已计划或正在执行的OperationQueues并取消它

ios - 在后台线程中恢复 NSManagedObject 关系

java - 使用 java-apns(notnoop) 发送 ios voip 通知