ios - NSCache - 标记对象不可移除

标签 ios objective-c cocoa memory-management nscache

当用户通过菜单在 View Controller 之间切换时,如果他有足够的内存,我想缓存它们。为此,我想使用 NSCache 来存储许多 UIViewControllers

但是,我不确定如何告诉 NSCache 当前对象已被使用且不应被删除。 例如,当我运行应用程序、加载几个 View Controller 并退出应用程序时,NSCache 会自动删除所有 viewControllers(这是有道理的 - 应用程序将能够在前台停留更长时间).但是,它还会删除当前显示的 View Controller ,这不是我想要的。

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

最佳答案

你可以这样做:

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

关于ios - NSCache - 标记对象不可移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14262172/

相关文章:

ios - ngf-select 不适用于 iphone5

ios - 固定背景图片

ios - UITableView 根据内容调整单元格大小

iphone - 如何在 ios 中使用 URL 和 NSString 在 UIImageView 上显示图像?

python - Objective C 和 python - pyobjc

ios - 采取包括设备框架的 iOS 模拟器屏幕截图?

cocoa - 使用 MagicalRecord 设计在后台保存的策略

objective-c - 如何使用 arrayWithContentsOfFile 加载在 ObjectiveC/XCode 中用 writeToFile 成功写入的文件

objective-c - 我绑定(bind)的对象的作用是什么?

objective-c - 如何在 iPhone 上将 NSMutableArray 转换为 CSV 文件?