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