[英]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.