NSURLSession 总结

NSURLSession:是苹果推出的对于 NSURLConnection的替代者
使用方法:

  1. 创建NSURLSessionConfiguration对象
  2. 用 configuration 对象配置一个 nsurlsession
  3. 用 nsurlsession 创建一个 task
  4. 因为在 nsurlsession 中 task 默认是挂起的,可以在 返回一个 task 之后做一些其他的配置,所以要对 task 执行 resume 方法,让其开始执行

NSURLSession 的task

  1. NSURLSessionDataTask:网络请求任务
  2. NSURLSessionUploadTask:继承于NSURLSessionDataTask:文件上传任务
  3. NSURLSessionDowloaderTask:下载任务,下载之后文件保存在沙盒中的 tmp 文件夹里,程序再次启动就会清理,需要手动保存

NSURLSession 与 NSURLConnection 的区别

  1. NSURLSession对网络请求做了加速:通过共享 NSURLsession这个全局的单例,实现 tcp 的复用,但是对于 connection,是每次连接都要进行一次 tcp 握手
  2. session 对 runloop 进行了封装,对于 connection 来说,要是在子线程发起一个网络请求,需要获取子线程的 runloop,不然 connection 的代理不会回调,或者调用 start 方法,他会在判断子线程的 runloop 没有开启的时候,自动创建一个,但是 session 不存在这种问题
  3. 可以配置一个全局的 session 来管理多个 task,也可以对一个 session 管理一个 task,并且对其进行单独配置,而 connection 只能整体配置,不可以进行单个配置
    4.session 的数据是一点一点返回的,而 connection 是一次返回作呕的数据
  4. session 支持后台下载
  5. session 下载的文件保存在 tmp 文件中,需要我们手动保存到磁盘,connection 是自动保存到磁盘的。

猜你喜欢

转载自blog.csdn.net/li15809284891/article/details/67633606