加载相同的 URL 后不会调用 cachedResponseForRequest
我对 NSURLCache
进行了子类化,并覆盖了 cachedResponseForRequest
,并将共享缓存更改为我自己的缓存对象,以拦截 UIWebView
发出的每个 url 请求。它第一次运行得很好,当 URL 加载到 UIWebView 中时,它会拦截所有内容(css、jpg 等)。但是,当我尝试加载相同的 URL(例如,index.html)时,将不会调用 cachedResponseForRequest
方法。如果我尝试使用不同的 URL,它会再次完美运行。
我尝试将请求的cachePolicy修改为每个可能的值,但没有任何帮助。
I subclassed NSURLCache
, and overwrote cachedResponseForRequest
, and changed the shared cache to my own cache object, to intercept every url request made by a UIWebView
. It works perfectly at the first time, when the URL loaded into the UIWebView
, it intercepts everything (css, jpg, etc). But when I try to load the same URL (eg. index.html), the cachedResponseForRequest
method won't be called. If then I try with a different URL it works perfectly again.
I tried to modify the request's cachePolicy to every possible values, but nothing helped.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最后我找到了一个解决方案:在每次 URL 请求之后,您必须释放所有 UIWebView,并在下一个请求之前重新创建它们。重要提示:每次发布都应在新分配之前发生。
Finally I found a solution: after every URL request, you have to release all the UIWebViews, and re-create them before the next request. IMPORTANT: every release should occur before the new allocs.