菜鸟教程小白 发表于 2022-12-11 18:23:16

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


                                            <p><p>我需要通过以下步骤执行一个场景:</p>

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

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

<ul>
<li>直接使用<code>URLSession</code>和<code>URLSessionDownloadTask</code>执行第一次网络调用(无并发)和JSON响应解析,并使用<code>Operation</code>和<code>OperationQueue</code> 用于后续步骤。如果用户想要取消对 <code>URLSession</code> 和 <code>cancelAllOperations()</code>当前搜索。</li>
<li>使用 <code>Operation</code> 和 <code>OperationQueue</code> 执行完整的流程。</li>
<li>还有其他更合适的方法吗?</li>
</ul></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>最好的方法是进行同步或异步调用来进行第一次服务调用。完成后,同步解析 json,然后使用延迟加载概念(异步调用)加载是否要下载任何图像以显示图像。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 我应该在这个完整的场景中使用操作队列吗?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/41279053/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/41279053/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 我应该在这个完整的场景中使用操作队列吗?