zoukankan      html  css  js  c++  java
  • IOS-NSCache

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

    ##
    方法
    取值
    - (id)objectForKey:(id)key;
    设置对象,0成本

    - (void)setObject:(id)obj forKey:(id)key;
    设置对象并指定成本

    - (void)setObject:(id)obj forKey:(id)key cost:(NSUInteger)g;
    成本示例,以图片为例:

    方案一:缓存100张图片
    方案二:总缓存成本设定为10M,以图片的宽*高当作成本,图像像素。这样,无论缓存的多少张照片,只要像素值超过10M,就会自动清理
    结论:在缓存图像时,使用成本,比单纯设置数量要科学!
    删除

    - (void)removeObjectForKey:(id)key;
    删除全部(不要使用!)

    - (void)removeAllObjects;

    属性

    @propertyNSUInteger totalCostLimit;

    缓存总成本
    @propertyNSUInteger countLimit;

    缓存总数量
    @propertyBOOLevictsObjectsWithDiscardedContent;

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

    注意:内存警告或者超出限制后,缓存中的任何对象,都有可能被清理。使用NSCache做缓存一定要保证能够有恢复的通道!

  • 相关阅读:
    用react的ReactCSSTransitionGroup插件实现简单的弹幕动画
    composer安装yii2问题总结
    记阿里笔试经历
    JVM, JRE,JDK 的区别
    HTML
    Http协议
    操作系统和网络基础知识
    网络基础之网络协议
    计算机硬件知识
    计算机硬件历史
  • 原文地址:https://www.cnblogs.com/DreamLinku/p/5654443.html
Copyright © 2011-2022 走看看