什么是NSCache?

时间:2011-06-22 20:09:40

标签: objective-c ios cocoa-touch cocoa macos

有人可以在我需要使用NSCache时向我简单解释一下吗?我阅读了文档而我没有得到它。比如,给我一个NSCache有用的场景示例? 感谢。

1 个答案:

答案 0 :(得分:19)

它或多或少就像一本字典,还有以下附加内容(如文档所述):

  

NSCache类包含各种自动删除策略   确保它不会使用太多   系统的记忆系统   自动执行这些   如果其他人需要内存的策略   应用。调用时,这些   政策从中删除了一些项目   缓存,最小化其内存   足迹。

     

您可以从缓存中添加,删除和查询缓存中的项目   线程无需锁定   缓存自己。

     

从NSCache对象中检索内容会返回自动释放的内容   结果

     

与NSMutableDictionary对象不同,缓存不会复制密钥   放入它的对象。

如果您的应用程序有大量需要使用的数据,您可以使用它,但是您无法将其全部保留在内存中。例如,如果您有一个从SQL Lite数据库或Web服务中提取数据的应用程序,则可以在查找后将其存储在NSCache中。然后,当您再次需要它时,您可以先检查缓存,只需要访问数据库(如果它不在缓存中)。在这种场景中使用常规字典的主要优点是,如果你在缓存中放入太多东西并且它开始填满内存,它会自动丢弃东西以便为你释放内存。