Objective-C:任何人都可以提供有关如何初始化和使用NSCache的示例代码吗?

时间:2011-07-28 11:20:45

标签: iphone objective-c caching pdf uiwebview

我想缓存我的PDF数据(使用UIWebView显示)以提高应用性能。我似乎找不到工作代码,也许只是我的代码不起作用。我的缓存总是返回NULL。

我有两个viewcontrollers:NavigatePDFViewController和PDFViewController。 NavigatePDFViewController显示PDF标题列表,单击该标题时,将从Internet打开PDF文件。 PDFViewController显示PDF文件。

以下是我完成的步骤:

1)在我的PDFViewController上添加了NSCacheDelegate

2)像这样创建了一个NSCache实例。我在NavigatePDFViewController.h中创建了NSCache *缓存。

cache = [[NSCache alloc]init];
[cache setDelegate:self];

3)像这样在我的缓存上添加了一个对象。 receivedData是NSMutableData,链接是NSString。

[cache setObject:receivedData forKey:link];

4)当我使用下面的代码检查我的缓存内容时,它返回null。

[cache objectForKey:link]

我错过了什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

NSCache的文档说:

  

存储在NSCache对象中的常见数据类型是一个对象   实现NSDiscardableContent协议。存储此类型   缓存中的对象具有优势,因为其内容可以被丢弃   当它不再需要时,从而节省了记忆。

您的receivedData是否可能实施该协议?如果是这样,它可能已被丢弃,您将不得不重新创建它。