繁体   English   中英

iOS:是否存在具有TTL和最大大小的内存缓存?

[英]iOS: Does an in-memory cache with TTL and max size exist?

我需要我的iOS应用程序的内存通用缓存,该缓存支持在达到最大大小时为项目提供生存时间并自动清除元素。 这样的事情存在吗?

NSCache不支持,因为它不支持TTL。

我正在自己动手,但如果不需要的话,那会很好。

使用NSCache您可以利用setTotalCostLimit:在特定限制后清除内存。 作为文档状态。

默认值为0,这表示对缓存的大小没有限制。 如果将对象添加到缓存,则可以传入该对象的指定成本,例如对象的字节大小。 如果将此对象添加到缓存中导致缓存的总成本超过totalCostLimit,则缓存可以自动逐出其某些对象,直到其总成本低于totalCostLimit。 不能保证高速缓存逐出对象的顺序。 此限制不是严格的限制,如果高速缓存超过该限制,则可以在稍后的时间点立即退出高速缓存中的对象,或者可能永远不清除高速缓存中的对象,这完全取决于高速缓存的实现细节。

如果还没有,请查看“ 缓存和可清除内存”文档。

另外,我遇​​到了NSCache C ++和TTL支持编写的NSCache类。 您可以在编写自己的指南时很好地以此为指导,可以在此处查看

希望这可以帮助 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM