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

时间:2015-11-19 18:46:02

标签: ios objective-c nscache

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

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

1 个答案:

答案 0 :(得分:4)

认为您需要确保放置在缓存中的对象符合NSDiscardableContentProtocol以获得所需的结果。来自NSCache Class Reference

  

存储在NSCache对象中的常见数据类型是一个对象   实现NSDiscardableContent协议。存储此类型   缓存中的对象具有优势,因为其内容可以被丢弃   当它不再需要时,从而节省了记忆。默认情况下,   自动删除缓存中的NSDiscardableContent对象   从缓存中删除它们的内容,尽管这是自动的   删除政策可以更改。如果是NSDiscardableContent对象   放入缓存,缓存调用discardContentIfPossible就可以了   在它被删除。