如何在ios中的NSCache中存储数据?

时间:2012-10-10 10:43:31

标签: objective-c nscache

我是NSCache的新手。

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

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

请帮帮我。

2 个答案:

答案 0 :(得分:11)

查看documentationsample code

  

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

Here是Nick Zitzmann的好解释。

  

NSCache与NSMutableDictionary类似,区别在于:
  1.保证是线程安全的   2.访问速度要慢得多   它可能会不时丢弃物体。您可以设置成本和限制,但不保证可以遵循它们   4.在CoreFoundation中没有任何免费的桥接。
  5.您无法查询缓存中的对象数量   6.您无法枚举缓存。

     

我只能建议使用NSCache存储您不关心的对象   关于他们是否被任意摧毁。如果对象不得   销毁,或者访问速度是一个问题,然后使用   相反,NSMutableDictionary。

答案 1 :(得分:1)

来自相关文档

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

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