美文网首页
NSCache & NSDictionary &

NSCache & NSDictionary &

作者: lllaa | 来源:发表于2018-11-23 22:08 被阅读11次

NSCache和NSURLCache一点关系也没有

NSCache和NSURLCache一点关系也没有

NSURLCache 为您的应用的 URL 请求提供了内存中以及磁盘上的综合缓存机制。 作为基础类库 URL 加载系统 的一部分,任何通过 NSURLConnection 加载的请求都将被 NSURLCache 处理。


NSCache苹果提供的一套缓存机制

主要作用于内存缓存的管理方面;

在没有引入NSCache之前,我们要管理缓存,都是使用的NSMutableDictionary来管理,

NSCache胜过NSDictionary的之处在于:

当系统资源将要耗尽时,它可以自动删减缓存。

NSCache还会先行删减“最久未使用的”(lease recently used)对象。

NSCache 并不会“拷贝”键,而是会“保留”它。NSCache对象不拷贝键的原因在于:很多时候,键都是有不支持拷贝操作的对象来充当的。因此,NSCache 不会自动拷贝键,所以说,在健不支持拷贝操作的情况下,该类用起来比字典更方便。

NSCache是线程安全的。而NSDictionary则绝不具备此优势,意思就是:在开发者自己不编写加锁代码的前提下,多个线程便可以同时访问NSCache.


相同点:

NSCache和NSMutableDictionary功能用法基本是相同的。

区别:

NSCache是线程安全的,NSMutableDictionary线程不安全

NSCache线程是安全的,Mutable开发的类一般都是线程不安全的

当内存不足时NSCache会自动释放内存(所以从缓存中取数据的时候总要判断是否为空)

NSCache可以指定缓存的限额,当缓存超出限额自动释放内存

缓存限额:

缓存数量

@property NSUInteger countLimit;

缓存成本

@property NSUInteger totalCostLimit;

苹果给NSCache封装了更多的方法和属性,比NSMutableDictionary的功能要强大很多

相关文章

网友评论

      本文标题:NSCache & NSDictionary &

      本文链接:https://www.haomeiwen.com/subject/xdfsqqtx.html