ios – NSCache和背景

ios – NSCache和背景,第1张

概述我注意到,当应用程序进入后台时,NSCache会将其所有对象放逐.那是预期的行为吗?有没有办法避免呢? 当应用程序进入后台时,当设备耗尽内存时,我希望它能够立即取消对象. 你知道任何有效的选择吗? 在我的情况下,发生在存储在NSCache中的对象不符合NSDiscardableContent协议的情况.当我添加所述协议时,应用程序进入背景时驱逐对象将消失. 另外,根据NSCache.m的源码,我发 我注意到,当应用程序进入后台时,NSCache会将其所有对象放逐.那是预期的行为吗?有没有办法避免呢?

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

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

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

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

总结

以上是内存溢出为你收集整理的ios – NSCache和背景全部内容,希望文章能够帮你解决ios – NSCache和背景所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1096852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存