• iOS基础


    使用URLSession所有的网络访问都是有缓存的,缓存文件自动保存在tmp文件夹中,URLSession本身实现的时候,就是少量多次的!

     

    l 使用defaultSessionConfiguration配置建立的会话

    退出到首页时,任务会被自动挂起

    重新进入应用时,任务会自动继续

     

    l 使用backgroundSessionConfiguration配置建立的会话

    在退出首页时,后台的下载任务仍然进行中,一直到下载完成

    重新进入首页时,才会触发代理方法,拷贝文件

    如果没有下载完成,重新进入应用时,下载任务会自动继续

     

    l 对于一次性数据访问,仍然可以使用NSURLConnection

     

    l 1. NSURL

    l 2. NSURLRequest

    l 3. NSURLSession

    l 4. NSURLSessionTask

    l 5. resume启动任务

     

    l 如果是简单的网络数据GETPOST,仍然使用NSURLConnection

    一、NSURLSession

    NSURLSessioniOS7中新的网络接口,与NSURLConnection是并列的。当程序在前台时,NSURLSessionNSURLConnection可以互相替代。如果用户强制将程序关闭,NSURLSession会被结束。

    NSURLSession提供的功能:

    l 通过URL将数据下载到内存

    l 通过URL将数据下载到文件系统

    l 将数据上传到指定URL

    l 在后台完成上述功能

    二、NSURLSessionConfiguration

    作用:用于定义和配置 NSURLSession 对象

    每一个NSURLSession对象都可以设置不同的NSURLSessionConfiguration,从而满足应用内不同类型的网络请求

    NSURLSessionConfiguration的三种类型:

    l defaultSessionConfiguration 默认session配置,类似 NSURLConnection 的标准配置,使用硬盘来存储缓存数据

    l ephemeralSessionConfiguration 临时session配置,与默认配置相比,这个配置不会将缓存、cookie等存在本地,只会存在内存里,所以当程序退出时,所有的数据都会消失

    l backgroundSessionConfiguration 后台session配置,与默认配置类似,不同的是会在后台开启另一个线程来处理网络数据

    三、NSURLSessionTask

    NSURLSession 使用 NSURLSessionTask 来具体执行网络请求的任务

    NSURLSessionTask 支持网络请求的取消、暂停和恢复,比如下载文件暂停之后再恢复就能够自动从上次的进度继续下载。NSURLSessionTask还能获取数据的读取进度

    NSURLSessionTask的三种类型:

    l NSURLSessionDataTask 处理一般的NSData数据对象,比如通过GETPOST方式从服务器获取JSONXML返回等等,但不支持后台获取

    l NSURLSessionUploadTask 用于上传文件,支持后台上传

    l NSURLSessionDownloadTask 用于下载文件,支持后台下载

    四、NSURLSession的使用

    使用NSURLSessionConfiguration来配置 NSURLSession 对象

    NSURLSession对象来启动一个NSURLSessionTask对象

    也可以使用系统全局的sharedSession单例来满足大多数的需求

    注:相比较NSURLConnection的返回处理,NSURLSession提供了灵活的数据返回方式,可以使用简单的block方式来处理返回数据,也可以使用更强大的delegate

     

  • 相关阅读:
    剑指Offer 14. 最长公共前缀
    SpringCloud学习笔记【一】:多模块聚合工程基本环境搭建
    SpringCloud学习笔记【零】:官方文档翻译之简介
    SpringBoot利用AOP巧妙记录操作日志
    SpringBoot中BeanValidation数据校验与优雅处理详解
    解决:IDEA无法创建Java文件,只能创建kotlin文件
    SpringBoot实现文件上传功能详解
    SpringBoot快速瘦身,快速部署jar
    SpringBoot的外部化配置最全解析!
    IDEA解决yml配置文件中文输出乱码问题
  • 原文地址:https://www.cnblogs.com/monicaios/p/3528986.html
Copyright © 2020-2023  润新知