NSURLConnection,NSURLSession和AFNetworking有什么区别?

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

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

谢谢你提问。

NSURLConnectionNSURLSession之间的差异

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

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

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

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

NSURLConnectionNSURLSession和AFNetworking之间的区别?

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

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

有关NSURLConnectionNSURLSession信息,请参阅URL加载系统编程指南。

从reference1和reference2中找到

感谢rob和dgatwood这样一个惊人的答案……