7
因此NSCache对象应该保持活动状态以保留缓存的数据,这意味着用于存储数据的同一对象必须用于检索数据。Objective-c - 通过静态NSMutableDictionary使用NSCache的好处?
- 所以问题是在使用NSCache的单点NSDictionary中保存我的数据有什么意义?
- 什么是使用NSCache的首选方式?静态字段?继承它并创建一个单身?
因此NSCache对象应该保持活动状态以保留缓存的数据,这意味着用于存储数据的同一对象必须用于检索数据。Objective-c - 通过静态NSMutableDictionary使用NSCache的好处?
一个缓存有一些怪癖,使得它很适合用作缓存,而不适合用作通用集合。如文档指出:
NSCache对象从其他可变集合在几个方面有所不同:
- 的NSCache类整合各种自动删除策略,这确保它不会使用太多的系统的内存。如果其他应用程序需要内存,系统会自动执行这些策略。调用时,这些策略会从缓存中删除一些项目,从而最大限度地减少内存占用量。
- 您可以从不同线程添加,删除和查询缓存中的项目,而无需自行锁定缓存。
- 从NSCache对象中检索某些内容会返回一个自动释放的结果。
- 与NSMutableDictionary对象不同,缓存不会复制放入其中的关键对象。
这些功能对于NSCache类是必需的,因为缓存可能决定在后台自动异步调整自身,如果它被调用来释放内存。
测试时务必小心。“AssertEqualObjects”断言不会在两个不同但空的NSCache实例上工作 –