什么时候UIWebView中的缓存开始工作?

gol*_*rox 13 iphone caching uiwebview nsurlrequest

我一直在测试一个iPhone视图控制器,它使用UIWebView加载外部内容,而不是项目包中的资源.另一位工程师注意到Web视图根本没有缓存,所以我进行了一些研究.一些较旧的问题表明UIWebView无法缓存外部内容.

以前关于UIWebView缓存的SO问题:

这些帖子非常混乱,但我注意到在iOS 4.0问世之前他们都被问到了.我测试了以下缓存方法,这看起来很简单.

NSURLRequest *request = [NSURLRequest requestWithURL:myUrl 
      cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];
[webView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)

这似乎在iOS 4.3上运行良好,但在iOS 3.0上根本不起作用.我通过将设备指向Charles代理(在iPhone上,设置 - > WiFi,手动代理)并将流量记录到我的服务器来测试.

UIWebView是否开始在iOS 4.0中观察缓存策略?任何人都可以证实这一点,还是我想象的事情?

Vib*_*yal -1

我刚刚检查过NSURLRequest.h

iOS SDK 中的大多数代码(具有版本控制断言)都有一个 if 语句,如下所示:

#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
Run Code Online (Sandbox Code Playgroud)

但方法

- (id)initWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval;
Run Code Online (Sandbox Code Playgroud)

似乎没有任何这样的东西,因此我猜它已经永远存在了。