首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSCache和背景

NSCache和背景
EN

Stack Overflow用户
提问于 2012-11-01 01:25:38
回答 3查看 5.6K关注 0票数 14

我注意到,当应用程序进入后台时,NSCache会逐出所有对象。这是预期的行为吗?有没有办法避免它呢?

我预计它会在设备内存耗尽时驱逐对象,而不是在应用程序进入后台时立即驱逐对象。

你知道有什么有效的替代方案吗?

EN

回答 3

Stack Overflow用户

发布于 2012-11-27 16:20:24

在我的例子中,当存储在NSCache中的对象不符合NSDiscardableContent协议时,就会发生这种情况。当我添加上述协议时,当应用程序进入后台时,对象的驱逐将消失。

此外,基于我发现的here的NSCache.m源代码,不符合NSDiscardableContent协议的对象永远不会在运行时被移除,即使应用程序需要更多的内存并应该驱逐它的一些元素。也许这就是为什么当应用程序进入后台时,非NSDiscardableContent对象被驱逐的原因,因为这是一个很好的时机来驱逐它们。

票数 11
EN

Stack Overflow用户

发布于 2012-11-01 01:37:47

这篇相关帖子中的评论表明,当应用程序进入后台时,NSCache会被清除。NSCache is not evicting data

票数 1
EN

Stack Overflow用户

发布于 2018-12-21 04:40:13

NSCache仍然是荒谬的。我从开发工具包的第一天起就是一个iOS开发人员,直到今天我才被这篇文章吸引,发现了这篇有帮助的文章。

这么多年来,我一直认为它的工作原理和任何正常的缓存一样,但事实并非如此!我再也不会用它了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13163480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档