我可以为特定的UIWebView或NSURLConnection指定一个NSURLCache吗?

4

有没有办法指定使用不同的NSURLCache?我的应用程序正在处理可能涉及私人信息的数据。我想保留多个缓存,以便可以更频繁地清除私人缓存而不是默认的sharedCache。

我看到了[NSURLCache setSharedCache]方法,但我想知道是否有一种方法可以将缓存设置为webview或请求设置为request。

任何输入/反馈/讨论都会很有用。谢谢。


你弄清楚了吗?我也很想在我的应用程序中加入它。 - Alexander Voloshyn
我还没有找到一个确定的答案。我读到的大部分信息都让我相信我必须覆盖整个机制。 - atreat
1个回答

1

在 NSURLConnectionDataDelegate 中有一个回调函数可能会有帮助。

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse;

connection:willCacheResponse:为代理提供了检查和修改NSCachedURLResponse的机会,如果启用了原始NSURLRequest的缓存,则加载器将缓存该响应。从该代理返回nil将防止资源被缓存。

请注意,缓存响应的-data方法可能会返回真实数据的自动释放内存副本,并且不应作为通过connection:didReceiveData:接收和累积数据的替代方法。


我能看出你认为这种方法会很有用。我将不得不使用自己的缓存机制,并将cachedURLResponse放入不同的桶中。似乎可行。但我认为这并不适用于UIWebView。 - atreat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接