ios – NSCache和背景

前端之家收集整理的这篇文章主要介绍了ios – NSCache和背景前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到,当应用程序进入后台时,NSCache会将其所有对象放逐.那是预期的行为吗?有没有办法避免呢?

当应用程序进入后台时,当设备耗尽内存时,我希望它能够立即取消对象.

你知道任何有效的选择吗?

解决方法

在我的情况下,发生在存储在NSCache中的对象不符合NSDiscardableContent协议的情况.当我添加所述协议时,应用程序进入背景时驱逐对象将消失.

另外,根据NSCache.m的源码,我发现here,不符合NSDiscardableContent协议的对象在运行时永远不会被删除,即使应用程序需要更多的内存,也应该驱逐其中的一些元素.也许这就是为什么非NSDiscardableContent对象在应用程序进入后台被驱逐的原因,因为这是他们被驱逐的好时机.

猜你在找的iOS相关文章