我目前使用NSCache的子类来存储一些带有相应名称(键)的图像(值),当应用程序位于前台时,它似乎工作正常。但是,当我按下主页按钮/用户进入后台并重新进入应用程序时,NSCache为空。
实现细节:我将NSCache的子类实现为Singleton。这确保了应该只有该类的一个实例,只需调用类名和共享实现,就可以从程序中的任何位置访问该实例。 [HelloCache sharedCache]
。这里HelloCache是子类的名称,sharedCache是共享Cache。
答案 0 :(得分:4)
认为您需要确保放置在缓存中的对象符合NSDiscardableContentProtocol以获得所需的结果。来自NSCache Class Reference:
存储在NSCache对象中的常见数据类型是一个对象 实现NSDiscardableContent协议。存储此类型 缓存中的对象具有优势,因为其内容可以被丢弃 当它不再需要时,从而节省了记忆。默认情况下, 自动删除缓存中的NSDiscardableContent对象 从缓存中删除它们的内容,尽管这是自动的 删除政策可以更改。如果是NSDiscardableContent对象 放入缓存,缓存调用discardContentIfPossible就可以了 在它被删除。