gpt4 book ai didi

iphone - UIWebView 中的缓存何时开始工作?

转载 作者:行者123 更新时间:2023-12-03 18:26:13 25 4
gpt4 key购买 nike

我一直在测试一个 iPhone View Controller ,它使用 UIWebView 来加载外部内容,而不是项目包中的资源。另一位工程师注意到 WebView 根本没有缓存,所以我开始做一些研究。一些较旧的问题表明 UIWebView 无法缓存外部内容。

之前关于 UIWebView 缓存的问题:

这些帖子相当令人泄气,但我注意到它们都是在 iOS 4.0 发布之前被问到的。我测试了以下缓存方法,这看起来非常简单。

NSURLRequest *request = [NSURLRequest requestWithURL:myUrl 
cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];
[webView loadRequest:request];

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

UIWebView 是否开始观察 iOS 4.0 中的缓存策略?其他人可以证实这一点还是我只是在想象?

最佳答案

是的,在 iOS 4.0 中缓存开始工作。

Foundation框架中有一个类负责处理这个问题,它是NSCache。它在 Mac OS X 中已经存在了很多年,但直到 iOS 4.0 才在 iOS 中实现。即使如此,它也只是部分实现:它不支持磁盘缓存,只支持内存缓存(因此,由于系统请求时会释放内存,所以缓存非常不可靠)。

NSCache 在 iOS 5.0 中收到了更新,增加了对磁盘缓存的支持,现在它的工作方式与 Mac 版本类似,可以毫无问题地使用。

关于iphone - UIWebView 中的缓存何时开始工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6820106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com