即使有强引用,NSCache也会释放对象吗?

时间:2017-12-26 09:26:44

标签: ios caching nscache

我已经设置了基本NSCache并存储了NSObject子类对象。我观察这些对象是从缓存中释放的(在应用程序背景化时),即使有超过1个其他强引用(通过内存调试器验证)。我在这里错过了什么吗?据我所知,NSCache只会在没有剩余引用的情况下释放内存压力下的对象。

1 个答案:

答案 0 :(得分:0)

我认为您看到NSCache没有跟踪所有权图,以查看释放对象是否会实际节省内存。它基于它自己的本地启发式发布。

考虑在这种情况下使用NSCache可能更有意义。如果还有其他强引用,缓存的所有者是否不负责创建对象?它是您尝试缓存的查找吗?

在对象创建很昂贵的情况下,我只使用了NSCache,但可以随时进行,不会影响我的对象图。