我想缓存我的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]
我错过了什么?任何帮助将不胜感激。
答案 0 :(得分:0)
NSCache的文档说:
存储在NSCache对象中的常见数据类型是一个对象 实现NSDiscardableContent协议。存储此类型 缓存中的对象具有优势,因为其内容可以被丢弃 当它不再需要时,从而节省了记忆。
您的receivedData
是否可能实施该协议?如果是这样,它可能已被丢弃,您将不得不重新创建它。