7

我对 NSCache 很陌生。

我有一个 API 调用会产生多个对象。如何将这些对象存储在 NSCache 中,这样我就不需要再次调用 API。

NSCache 中可以存储多少数据。将数据存储在 NSCache 中是否有特定限制。

请帮我。

4

2 回答 2

11

查看文档示例代码

NSCache 对象是一个类似于集合的容器或缓存,用于存储键值对,类似于 NSDictionary 类。

是 Nick Zitzmann 的很好的解释。

NSCache 与 NSMutableDictionary 类似,区别在于:
1. 保证线程安全。
2.访问速度慢很多。
3.它可能会不时抛出物体。您可以设置成本和限制,但不能保证一定会遵守。
4. 它不是免费连接到 CoreFoundation 中的任何东西。
5. 无法查询缓存中的对象数量。
6. 不能枚举缓存。

我只能推荐使用 NSCache 来存储你不会关心的对象,如果它们被任意破坏。如果对象不能被销毁,或者访问速度是个问题,那么使用 NSMutableDictionary 代替。

于 2012-10-10T10:49:26.857 回答
1

来自与您相关的文档

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSCache_Class/Reference/Reference.html

NSCache 有很多自动删除策略,确保它不会使用过多的系统内存。如果其他应用程序需要内存,系统会自动执行这些策略。调用时,这些策略会从缓存中删除一些项目,从而最大限度地减少其内存占用。

于 2012-10-10T10:55:05.877 回答