我注意到,当应用程序进入
后台时,NSCache会将其所有对象放逐.那是预期的行为吗?有没有办法避免呢?
当应用程序进入后台时,当设备耗尽内存时,我希望它能够立即取消对象.
你知道任何有效的选择吗?
在我的情况下,发生在存储在NSCache中的对象不符合NS
discardableContent协议的情况.当我
添加所述协议时,应用程序进入背景时驱逐对象将消失.
另外,根据NSCache.m的源码,我发现here,不符合NSdiscardableContent协议的对象在运行时永远不会被删除,即使应用程序需要更多的内存,也应该驱逐其中的一些元素.也许这就是为什么非NSdiscardableContent对象在应用程序进入后台被驱逐的原因,因为这是他们被驱逐的好时机.