您的位置:首页 > 移动开发 > IOS开发

iOS9的 NSURLSession

2015-10-08 19:27 309 查看
鉴于更新到Xcode7.0后,基本NSURLConnection的方法废的废,删的删,很明显,苹果应该是不建议用NSURLConnection了,好吧,我这么乖,那咱们就研究研究NSURLSession

Session,字面意思就是会话,与大多数网络API一样,NSURLSession API是异步的。如果我们使用系统提供的代理,我们必须提供一个请求完成处理block,以便在请求成功或失败时返回数据给我们的应用。如果我们提供自定义的代理对象,则任务对象调用这些代理方法,并回传从服务端获取的数据(如果是文件下载,则当传输完成时调用)。

先看一下这两者的区别

与NSURLConnection相比,NSURLSession最直接的改善就是提供了配置每个会话的缓存,协议,cookie和证书政策(credential policies),甚至跨应用程序共享它们的能力。这使得框架的网络基础架构和部分应用程序独立工作,而不会互相干扰。每一个NSURLSession对象都是根据一个NSURLSessionConfiguration初始化的,该NSURLSessionConfiguration指定了上面提到的政策,以及一系列为了提高移动设备性能而专门添加的新选项。

这么一大段话告诉我们
Session好用,独立,安全

先介绍下

session的类型(由创建会话时的配置对象确定)
任务的类型
当任务创建时应用是否在前台

三种会话类型:(了解就好)

默认会话:行为与其它下载URL的Foundation方法类似。使用基于磁盘的缓存策略,并在用户keychain中存储证书。
短暂会话(Ephemeral sessions):不存储任何数据在磁盘中;所有的缓存,证书存储等都保存在RAM中并与会话绑定。这样,当应用结束会话时,它们被自动释放。
后台会话(Background sessions):类似于默认会话,除了有一个独立的进程来处理所有的数据传输。

在一个会话中,NSURLSession支持三种任务类型

数据任务:使用NSData对象来发送和接收数据。数据任务可以分片返回数据,也可以通过完成处理器一次性返回数据。由于数据任务不存储数据到文件,所以不支持后台会话.这个一般用来处理小数据,json呀,xml呀,图片呀之类的,只要不做上传下载,都用这个,应该上传头像也是用这个,我也是新学,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: