NSURLConnection,NSURLSession和AFNetworking有什么区别?
我想知道它们之间的基本区别是什么,以及在Objective-c和swift中管理iOS端Web服务的最佳和常用方法是什么。
以前我在Objective-c工作过,当我们需要使用web服务时,我们正在使用AFNetworking和NSURLConnections,当NSURLSession启动时,我开始在swift中使用这个。 那么哪一个适合,所以我能够管理所有的webservices网络连接条件等?
谢谢你提问。
NSURLConnection
, NSURLSession
之间的差异
整个模型是不同的。 NSURLSession
的设计基于这样的假设,即您将需要大量需要类似配置的请求(标准的标题集等),并且如果您这样做会让生活变得更加轻松。
NSURLSession
还提供对后台下载的支持,这使得可以在应用程序未运行时(或在iOS上的后台运行时)继续下载资源。 对于某些用例,这也是一个重大胜利。
NSURLSession还提供相关请求的分组,从而可以轻松取消与特定工作单元关联的所有请求,例如在用户关闭窗口或选项卡时取消与加载网页相关的所有负载。
NSURLSession
还提供了使用块来请求数据的更好的接口,因为它允许您将它们与委托方法结合起来进行自定义身份validation处理,重定向处理等,而使用NSURLConnection
,如果您突然意识到您需要执行这些操作,那么必须重构您的代码以不使用基于块的回调。
NSURLConnection
, NSURLSession
和AFNetworking之间的区别?
NSURLConnection
和NSURLRequest
是用于管理连接的Cocoa类。 在iOS 7中,Apple添加了NSURLSession。
但我认为你会发现AFNetworking是一个进一步简化网络请求(特别是复杂的HTTP请求)的框架。 如果您不想出于任何原因使用第三方框架,则可以直接使用NSURLConnection
和/或NSURLSession
。 它只需要更多的编码。
有关NSURLConnection
和NSURLSession
信息,请参阅URL加载系统编程指南。
从reference1和reference2中找到
感谢rob和dgatwood这样一个惊人的答案……