• NSURLSession & NSCache


    • 用于替代 NSURLConnection
    • 支持后台运行的网络任务
    • 暂停、停止、重启网络任务,不再需要 NSOperation 封装
    • 请求可以使用同样的配置容器
    • 不同的 session 可以使用不同的私有存储
    • block 和代理可以同时起作用

    直接从文件系统上传、下载

    结构图

     

    • 为了方便程序员使用,苹果提供了一个全局 session
    • 所有的 任务(Task) 都是由 Session 发起的

    所有的任务默认是挂起的,需要 Resume !!!!

    NSCache

    介绍

    • NSCache 是苹果提供的一个专门用来做缓存的类
    • 使用和 NSMutableDictionary 非常相似
    • 是线程安全的
    • 当内存不足的时候,会自动清理缓存
    • 程序开始时,可以指定缓存的数量 & 成本

    方法

    1  取值

    ◦                     - (id)objectForKey:(id)key;

    2  设置对象,0成本

    ◦                     - (void)setObject:(id)obj forKey:(id)key;

    3  设置对象并指定成本

    ◦                     - (void)setObject:(id)obj forKey:(id)key cost:(NSUInteger)g;

    4  成本示例,以图片为例:

    ◦                     方案一:缓存 100 张图片

    ◦                     方案二:总缓存成本设定为 10M,以图片的 宽 * 高当作成本,图像像素。这样,无论缓存的多少张照片,只要像素值超过 10M,就会自动清理

    ◦                     结论:在缓存图像时,使用成本,比单纯设置数量要科学!

    5  删除

    ◦                     - (void)removeObjectForKey:(id)key;

    6  删除全部(不要使用!)

    ◦                     - (void)removeAllObjects;

    属性

    • @property NSUInteger totalCostLimit;

                            缓存总成本

    • @property NSUInteger countLimit;

                            缓存总数量

    • @property BOOL evictsObjectsWithDiscardedContent;

    是否自动清理缓存,默认是 YES

    最怕你一生碌碌无为 还安慰自己平凡可贵
  • 相关阅读:
    springboot中如何获取配置文件的值
    自动获取当月天数
    控制输入前端时间格式及其它常见需求
    页面输出格式常用注解----@JsonIgnore,@JsonFormat,@JsonFormat
    echart动态生成标题
    echart柱状图中每个柱子超过阈值改变颜色状态
    如何把箭头放置在文本前面,并根据数据的正负显示向上和向下箭头
    02、GPIO初始化
    Linux文件目录的权限
    Linux执行命令./command与直接输入命令的区别
  • 原文地址:https://www.cnblogs.com/fakeCoder/p/5093768.html
Copyright © 2020-2023  润新知