ios - 当应用程序进入后台时,NSCache 总是驱逐图像数据

标签 ios nscache

这可能是预期的行为,但 Apple 并未明确说明。

我正在使用 NSCache 为我的 UICollectionView 缓存一些图像。当我将应用程序置于后台并(立即)再次打开它时,我所有的图像都不再位于 NSCache 中。

理想情况下,我希望将最近加载的图像保留在缓存中,这样当用户重新打开应用时,他们就不必支付再次加载所有图像的费用。看起来 NSCache 应该允许不太激进的缓存策略。

我只是想在这里发帖进行完整性检查,确保我没有遗漏任何明显的东西。

否则,我将不得不实现自己的缓存,将最后 25 个加载的图像保存在 NSMutableDictionary 缓存中。

最佳答案

看起来您需要为放入 NSCache 的对象实现 NSDiscardableContent 协议(protocol)。当缓存中的对象不符合 NSDiscardableContent 时,它们将根据此答案在应用程序后台运行时被驱逐。 https://stackoverflow.com/a/13579963

关于ios - 当应用程序进入后台时,NSCache 总是驱逐图像数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19898540/

相关文章:

ios - MSAL 添加范围 @"offline_access"、@"openid"、@"profile"问题

objective-c - objective c singleton dispatch_once 实现更好?

iOS 开发者 PageControl 示例优化

ios - 在另一个 UIViewController 中嵌入 UIViewController View

xcode - 缓存文本/字典的 NSArray 并使其在整个应用程序中可用的最佳方法是什么?

ios - 在 IOS 中存储应用程序数据的正确位置

ios - iOS 上的 PhoneGap 条码扫描仪无响应

iphone - NSCache 不驱逐数据

iphone - 键值观察NSCache

Objective-c - 在静态 NSMutableDictionary 上使用 NSCache 的好处?