这可能是预期的行为,但 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/