每次我用UIWebView加载一个新页面时,都会在短时间内显示以前加载的页面。
我怎么才能清除那个缓存?另一种可能是取消UIWebview。我试过了,但我的UIWebView总是“空”的。在这种情况下,应该如何实现alloc和dealloc?
我注意到UIWebView正在消耗大约10 MB内存。现在,UIWebView与ViewController一起加载。视图是自动发布的,UIWebView也是自动发布的。难道每次去分配WebView不是更好吗?
解决方案:
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
CGRect frame = CGRectMake(0, 0, 320, 480);
self.webView = [[[UIWebView alloc]initWithFrame:frame] autorelease];
self.webView.scalesPageToFit = YES;
[self.view addSubview:self.webView];
}
- (void) viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self.webView removeFromSuperview];
self.webView = nil;
}发布于 2010-09-28 22:59:58
这个问题的解决方案是以编程方式在viewWillAppear:上创建viewWillAppear:,并在viewDidDisappear:上发布它,如下所示:
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.webView = [[[UIWebView alloc]initWithFrame:exampleFrame] autorelease];
self.webView.scalesPageToFit = YES;
self.webView.delegate = self;
self.webView.autoresizingMask = webViewBed.autoresizingMask;
[exampleView addSubview:self.webView];
}
- (void) viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self.webView removeFromSuperview];
self.webView.delegate = nil;
self.webView = nil;
}如果你这样做,而你的UIWebView没有被释放,你应该检查它的保留计数,并了解谁保留它。
发布于 2010-10-20 11:07:33
我几乎也遇到了同样的问题。我希望清除webview缓存,因为每次在UIWebView中重新加载本地网页时,都会显示旧的页面。因此,我通过简单地设置请求的cachePolicy属性找到了一个解决方案。使用NSMutableURLRequest设置此属性。有了这些之后,重新加载UIWebView就可以正常工作了。
NSURL *url = [NSURL fileURLWithPath:MyHTMLFilePath];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[self.webView loadRequest:request];希望这能帮上忙!
发布于 2012-02-06 22:06:28
如果要删除所有缓存的响应,也可以尝试如下所示:
[[NSURLCache sharedURLCache] removeAllCachedResponses];https://stackoverflow.com/questions/3683576
复制相似问题