2016-08-24 97 views
0

我有一个网站,可以离线使用。我创建了使用UIWebView的应用程序,我说我UIWebView应该缓存这个站点用下面的代码缓存将无法在UIWebView

[self setRequestObj:[NSURLRequest requestWithURL:loadUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]]; 

如果我开始了我的应用程序第一次与互联网连接我console登录

2016-08-24 15:37:01.713 BrowserApp[1991:345138] applicationDidBecomeActive! 
2016-08-24 15:37:01.955 BrowserApp[1991:345138] NSURLRequestUseProtocolCachePolicy 
2016-08-24 15:37:22.003 BrowserApp[1991:345138] applicationDidEnterBackground! 
2016-08-24 15:37:22.559 BrowserApp[1991:345138] applicationWillEnterForeground! 
2016-08-24 15:37:23.075 BrowserApp[1991:345138] applicationDidBecomeActive! 
2016-08-24 15:37:37.069 BrowserApp[1991:345138] applicationDidEnterBackground! 
2016-08-24 15:37:37.073 BrowserApp[1991:345138] applicationWillTerminate! 

我看到在文件AppDelegate.m中调用了每种方法。我从互联网断开我的手机,再次启动我的应用程序(不在我的console告诉的背景中),没有任何反应。我只有一个白色的网站。

为什么website不会显示在我的屏幕上虽然我设置为cache呢?

回答

0

这可能是因为您已加载的页面有一个到期日期(它可能被设置为立即过期)。尝试将cahce策略设置为NSURLRequestReturnCacheDataElseLoad(尽管从长远来看这可能不太好,因为它会从重新加载)。

或者,(更可能)来自网站的响应头可能包含缓存控制标头。不管你说什么,页面仍然可以告诉NSURLRequest它不应该被缓存。

为了进行调查,您可以设置一个断点,或者在您的代码中放置一些日志记录,以便您接收响应。将NSURLResponse投射到NSHTTPURLResponse,然后使用allHeaderFields查看标题。