我们应该使用的NSCache

NSCache是苹果官方提供的缓存类,它的用法 NSMutableDictionary的用法很相似,NSCache使用率很广,例如在 AFNetworking 和 SDWebImage 中均使用NSCache来管理缓存。还有一个好处就是NSCache在系统内存很低时候会自动释放一些缓存内容,无需人工干预。同时NSCache还是线程安全的,在多线程中无需对NSCache进行加锁。另外NSCache的key只是做强引用,无需实现NSCopying协议。

NSCache也被设计来融合对象遵从,其中最常见的类型是NSPurgeableData,通过调用beginContentAccess 与 endContentAccess,你可以控制何时安全放弃这个对象。这不仅在你的应用运行时提供自动缓存管理,它甚至有助于你的应用被暂停。通常情况下,当内存紧张时,内存警告没有释放出足够的内存,iOS会开始杀死暂停在后台的应用。在这种情形下,你的应用没有得到delegate信息,就这样被杀死。不过如果你使用NSPurgeableData,iOS会释放这块内存给你,即使你的应用被暂停。

属性:

 

方法:

 

NSCacheDelegate

 

代码示例:

 

log信息:

 

延伸阅读:

http://nshipster.cn/nscache/

 

尊重原创内容,转载请注明出处
本文链接地址: http://www.awnlab.com/archives/103

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注