我需要执行一个场景,步骤如下:
- 使用用户提供的一些搜索参数进行网络调用
- 然后,解析其 JSON 响应并创建模型实体
- 然后,对于创建的每个实体,如果它有关联的图像 URL,则调用相应的服务来下载此类图像,并在下载完成时将其显示在
UICollectionView
中。
在下载我需要的 N 个图像时,我需要处理并发网络调用。用户应该可以取消当前的搜索流程并开始新的搜索流程。此外,我应该考虑到某个图像的单元格尚未显示或已出队。所以,我的问题是:哪种方法最好?
- 直接使用
URLSession
和URLSessionDownloadTask
执行第一次网络调用(非并发)和JSON 响应解析,并使用Operation
和OperationQueue
用于后续步骤。如果用户想要取消当前搜索。 - 使用
Operation
和OperationQueue
执行整个过程。 - 还有其他更合适的方法吗?
最佳答案
最好的方法是进行同步或异步调用以进行第一次服务调用。完成后,同步解析json,如果要下载图片,使用懒加载概念(异步调用)加载显示图片。
关于ios - 我应该为这个完整的场景使用操作队列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41279053/