gpt4 book ai didi

ios - 为什么使用 GCD 和 block 进行 HTTP 下载?

转载 作者:可可西里 更新时间:2023-11-01 05:36:01 24 4
gpt4 key购买 nike

在一次求职面试中,有人问我为什么要使用 block 和 GCD 而不是 NSURLConnection 来异步下载文件。经过一些研究,我还没有找到这样做的充分理由。我有多个应用程序,我只使用 NSURLConnection 就可以同时进行多个下载。他们的问题是试图确定我是否符合流行的任何东西(GCD、 block ),或者以这种方式进行异步提取是否有任何实际的、实质性的优势?谢谢。

最佳答案

在 iOS 7 中,您通常不应使用基于 block 的方法来异步下载文件。为了支持后台传输,您必须将 NSURLSession 与委托(delegate)方法一起使用,并且不能使用基于 block 的方法。除此之外,我不确定在任何情况下“而不是 NSURLConnection”在这里是什么意思。

如果他们的意思是 sendAsynchronousRequest:queue:completionHandler:(即 NSURLConnection),它很方便,但不如基于委托(delegate)的 NSURLConnection 灵活和强大,所以我唯一的答案是“因为有时它更方便,并且在您不需要太多灵 active 时让代码更紧密地结合在一起。”

除非他们真正的意思是真正执行此操作的 GCD 部分:Dispatch I/O。有理由直接使用它(特别是如果您使用非 HTTP 协议(protocol),或者如果您管理的是 HTTP 服务器而不是客户端),但它们很少见,而且通常不用于“异步下载文件”。在大多数情况下,更高级的 API 是首选。

关于ios - 为什么使用 GCD 和 block 进行 HTTP 下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19123214/

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