我实际上对此有不止一个问题......我仍然是NSURLCache和UIWebViews的新手,但我认为不知不觉中了。
无论如何,我能够成功地为我的UIWebView实现缓存(我认为)。我初始化了NSURLCache。我的UIWebView使用loadRequest:方法加载其内容。我分配了拥有UIWebView作为其委托的ViewController。我还有ViewController实现NSURLConnectionDataDelegate。我实现了连接:willCacheResponse:方法只是为了在控制台中记录消息,所以我可以检查缓存是否完成。我还记录了当前的磁盘和内存使用情况。它在缓存后增加,因此我可以看到它确实有效。
但是,当我再次加载页面时,我认为请求再次发送到服务器,因为正在调用连接委托方法,如connection:didReceiveResponse:和connection:willCacheResponse。
我还想尝试使用cachedResponseForRequest:从缓存中获取cachedResponse:。我在webViewDidFinishLoad中调用了这个方法:但它总是返回null。缓存真的有效吗?
如何判断WebView是否从缓存中加载?我是否误用了cachedResponseForRequest:?而另一方面,对于缓存,至少应该存在哪些适当的Control-Cache头值?我正在测试谷歌的主页URL,它返回其缓存控制标头的私有值,但我可以看到缓存有效,因为连接:willCacheResponse:被调用。
请帮忙吗?