9

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

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

4

1 回答 1

6

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

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

于 2015-11-19T19:05:28.307 回答