Ios8 NSURLConnection和NSURLSession之间最大的区别是什么

Ios8 NSURLConnection和NSURLSession之间最大的区别是什么,ios8,nsurlconnection,nsurlsession,cfnetwork,Ios8,Nsurlconnection,Nsurlsession,Cfnetwork,是比苹果新的网络SDK。第三个老选择是CFNetwork 这里的问题是找出它们之间最大的区别,以理解苹果为什么会像这样进化 谢谢整个型号都不一样。NSURLSession的设计是基于这样一种假设,即您将有许多请求需要类似的配置(标准的头集等),这样做会使您的生活更加轻松 NSURLSession还提供后台下载支持,这使您可以在应用程序未运行(或在iOS上处于后台)时继续下载资源。对于某些用例来说,这也是一个重大的胜利 NSURLSession还提供了相关请求的分组,可以轻松取消与特定工作单元关联

是比苹果新的网络SDK。第三个老选择是CFNetwork

这里的问题是找出它们之间最大的区别,以理解苹果为什么会像这样进化


谢谢

整个型号都不一样。NSURLSession的设计是基于这样一种假设,即您将有许多请求需要类似的配置(标准的头集等),这样做会使您的生活更加轻松

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

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


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

NSURLConnection

组成基础URL加载系统的一组相互关联的组件:NSURLRead、NSURLResponse、NSURLCONTER、NSURLCKASH、NSHTTCPOOKIDESTRAGE、NSULLCURCONTICALL存储及其名称,NSURLCONTION/P> NSURLRequest对象被传递给NSURLConnection对象。委托(符合以前的非正式协议和协议)作为NSURLSRESPONSE异步响应,并且从服务器发送任何相关的NSData

在将请求发送到服务器之前,将查阅共享缓存,并且根据策略和可用性,可以立即透明地返回缓存响应。如果没有可用的缓存响应,则会使用选项发出请求,以便为任何后续请求缓存其响应。 在向服务器协商请求的过程中,该服务器可能会发出身份验证质询,该质询由共享cookie或凭据存储或连接委托自动处理。传出请求也可以被注册的NSURLProtocol对象拦截,以便根据需要无缝地更改加载行为

NSURLSession

除了同名类NSURLSession之外,还指一组相互依赖的类。NSURLSession由与以前相同的部分组成,包括NSURLRequest、NSURLCache等,但将NSURLConnection替换为NSURLSession、NSURLSessionConfiguration和NSURLSessionTask的三个子类:NSURLSessionDataTask、NSURLSessionUploadTask和NSURLSessionDownloadTask


NSURLSessionTask是一个抽象子类,有三个直接使用的具体子类:NSURLSessionDataTask、NSURLSessionPloadTask和NSURLSessionDownloadTask。这三个类封装了现代应用程序的三个基本网络任务:获取数据(如JSON或XML)以及上载和下载文件。对于

NSURLSession和NSURLConnection之间的区别

NSURLSession

注意:(在OS X 10.11和iOS 9.0中不推荐使用NSURLConneciton)

1)NSURLSession的设计是基于这样一种假设,即您将有许多请求需要类似的配置(标准的头文件集等),从而使您的生活更加轻松

2)NSURLSession还支持后台下载,这使得在应用程序未运行或在iOS上处于后台时,可以继续下载资源

3)NSURLSession还提供了相关请求的分组,使得取消与特定工作单元关联的所有请求变得容易,例如取消与特定工作单元关联的所有请求,例如在用户关闭窗口或选项卡时取消与加载网页关联的所有加载

4)NSURLSession还为使用块请求数据提供了更好的接口,n它允许您将它们与委托方法相结合,以进行自定义身份验证处理、重定向处理等

NSURLSessionConfiguration类型

1)默认会话配置

创建使用磁盘持久化全局缓存、凭据和cookie存储对象的默认配置对象。

2)临时会话配置

与默认配置类似,只是所有会话相关数据都存储在内存中。将此视为“私人”会话。

3)背景会话配置

允许会话在后台执行上载或下载任务。即使应用程序本身被挂起或终止,传输也会继续进行

NSURLSessionTasks的类型

1)数据任务(NSURLSessionDataTask)

数据任务用于从服务器请求数据,例如JSON数据。这些数据通常存储在内存中,从不涉及我们可以使用NSURLSessionDataTask的文件系统

2)上传任务(NSURLSessionPloadTask)

上载任务用于将数据上载到远程目标。我们可以使用NSURLSessionPloadTask

3)下载任务(NSURLSessionDownloadTask)

下载文件并存储在临时位置。我们可以使用NSURLSessionDownloadTask

NSURLSession和NSURLConnection之间的主要区别

NSURLConnection:

如果我们与NSURLConn有开放连接
  application:handleEventsForBackgroundURLSession:completionHandler in your AppDelegate