gpt4 book ai didi

ios - Async NSURLConnection 触发其他 Async NSURLConnection : what is the best way of doing this?

转载 作者:行者123 更新时间:2023-12-01 17:30:12 26 4
gpt4 key购买 nike

这是一个开放性问题,旨在了解什么是我认为可能很常见的问题的最佳实践或最常见的解决方案。

假设我有一个要下载的 URL 列表;该列表本身托管在服务器上,因此我启动了一个 NSURLConnection 来下载它。 connectionDidFinishLoading 中的代码将使用 URL 列表为每个 URL 异步实例化一个新的 NSURLConnection;这反过来会触发更多的 NSURLConnections,依此类推——直到没有更多的 URL。将其视为连接树。

检测所有连接何时完成的最佳方法是什么?

我的问题是针对 iOS7,但欢迎对其他版本发表评论。

最佳答案

几个想法:

  • 在从服务器检索列表后触发后续下载方面,只需将执行这些后续下载的逻辑放在第一个请求的完成处理程序 block (或完成委托(delegate)方法)中。
  • 在下载一堆文件方面,如果针对 iOS 7 及更高版本,您可以考虑使用 NSURLSession而不是 NSURLConnection .
  • 首先,通过启动“下载”任务(而不是“数据”任务)来下载具有适度内存占用的文件。
  • 二、可以后台下载NSURLSessionConfiguration ,即使用户离开应用程序,下载也会继续。见Downloading Content in the Background iOS 应用程序编程指南的部分。如果你这样做,有很多 i 需要打点,而 t 需要交叉,但考虑实现它是一个很棒的功能。

  • WWDC 2013 What's New in Foundation Networking了解 NSURLSession .或查看 URL Loading System Programming Guide 的相关章节.
  • 在跟踪您是否完成方面,正如 Wain 建议的那样,您可以跟踪发出的请求数和完成/失败的请求数,并且在您的“任务完成”逻辑中,只需比较这两个数字,并在完成数与请求数匹配时启动“全部完成”逻辑。有很多方法可以做到这一点,在某种程度上取决于您的实现细节,但希望这能说明基本思想。
  • 关于ios - Async NSURLConnection 触发其他 Async NSURLConnection : what is the best way of doing this?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27906140/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com