当应用程序进入后台时,NSCache清空

我目前使用NSCache的子类来存储一些图像(值)及其相应的名称(键),当应用程序位于前台时,它似乎工作正常。 但是,当我按下主页按钮/用户进入后台并重新进入应用程序时,NSCache为空。

实现细节:我将NSCache的子类实现为Singleton。 这确保了应该只有该类的一个实例,只需调用类名和共享实现,就可以从程序中的任何位置访问该实例。 [HelloCache sharedCache] 。 这里HelloCache是​​子类的名称,sharedCache是​​共享Cache。

您需要确保放置在缓存中的对象符合NSDiscardableContentProtocol以获得所需的结果。 从NSCache类参考 :

存储在NSCache对象中的常见数据类型是实现NSDiscardableContent协议的对象。 将这种类型的对象存储在缓存中具有好处,因为它的内容可以在不再需要时被丢弃,从而节省内存。 默认情况下,如果丢弃其内容,则会自动从缓存中删除缓存中的NSDiscardableContent对象,但可以更改此自动删除策略。 如果将NSDiscardableContent对象放入缓存中,则缓存在删除时会调用discardContentIfPossible。