首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSCache -标记对象不可移除

NSCache -标记对象不可移除
EN

Stack Overflow用户
提问于 2013-01-11 00:09:05
回答 2查看 1.2K关注 0票数 1

当用户通过菜单在视图控制器之间切换时,如果他有足够的内存,我想缓存它们。为了做到这一点,我想使用NSCache来存储许多UIViewControllers

但是,我不确定如何才能告诉NSCache当前对象正在使用中,不应该被删除。例如,当我运行应用程序,加载一些视图控制器并退出应用程序时,NSCache会自动删除所有的viewControllers (这是有意义的-应用程序将能够在前台停留更长时间)。但是,它也删除了当前显示的视图控制器,这不是我想要的。

如何将特定对象标记为不可移除?

EN

回答 2

Stack Overflow用户

发布于 2013-04-09 21:14:11

你可以这样做:

当应用程序转到后台时,缓存将被移除。因此,当应用程序进入后台时,将缓存中的数据存储到{NSUserDefaults}中,并且当应用程序didBecomeActive将值重新分配给缓存时。

票数 2
EN

Stack Overflow用户

发布于 2013-01-11 00:27:46

缓存是一种关联内存:您不能强烈地决定何时删除缓存的项。相反,您可以更改缓存策略。

从文档中:

默认情况下,如果缓存中的NSDiscardableContent对象的内容被丢弃,则会自动从缓存中删除这些对象,尽管可以更改此自动删除策略。如果将NSDiscardableContent对象放入缓存中,则缓存会在删除该对象时对其调用discardContentIfPossible。

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

https://stackoverflow.com/questions/14262172

复制
相关文章

相似问题

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