NSURLConnection,NSURLSession和AFNetworking有什么区别?

时间:2016-11-11 06:10:41

标签: ios

我想知道它们之间的基本差异是什么,以及在Objective-c和swift中管理iOS端Web服务的最佳和常用方法是什么。

如前所述,我在Objective-c工作,当我们需要使用Web服务时,我们正在使用AFNetworking和NSURLConnections,当NSURLSession启动时,我开始使用swift中的这个。 那么哪一个适合,所以我能够管理所有的webservices网络连接条件等?

1 个答案:

答案 0 :(得分:3)

感谢您提出问题。

NSURLConnectionNSURLSession

之间的差异

整个模型不同。 NSURLSession的设计基于这样的假设,即您需要大量的请求需要类似的配置(标准的标题集等),并且如果您这样做会让生活变得更加轻松。

NSURLSession还为后台下载提供支持,这样可以在您的应用未运行时(或在iOS上的后台运行时)继续下载资源。对于某些用例,这也是一个重大胜利。

NSURLSession还提供相关请求的分组,从而可以轻松取消与特定工作单元关联的所有请求,例如在用户关闭窗口或选项卡时取消与加载网页相关的所有负载。

NSURLSession还提供了使用块来请求数据的更好的接口,因为它允许您将它们与委托方法结合使用以进行自定义身份验证处理,重定向处理等,而使用NSURLConnection,如果你突然意识到你需要做那些事情,你必须重构你的代码,不要使用基于块的回调。

NSURLConnectionNSURLSession和AFNetworking之间的差异?

NSURLConnectionNSURLRequest是用于管理连接的Cocoa类。在iOS 7中,Apple添加了NSURLSession。

但我认为你会发现AFNetworking是一个进一步简化网络请求(特别是复杂的HTTP请求)的框架。如果您因任何原因不想使用第三方框架,可以直接使用NSURLConnection和/或NSURLSession。它只需要更多的编码。

有关NSURLConnectionNSURLSession的信息,请参阅URL Loading System Programming Guide.

reference1reference2

查找

感谢robdgatwood这么棒的答案......