每次我加载一个新页面时UIWebView
,前面加载的页面会显示很短的时间.
我该如何清除缓存?另一种可能性是dealloc UIWebview
.我试过了,但我UIWebView
总是"空".应该如何alloc
和dealloc
在这种情况下怎么办?
我注意到它UIWebView
消耗了大约10 MB RAM.现在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; }
小智.. 28
我有几乎相同的问题.我希望清除webview缓存,因为每次我重新加载一个本地网页时UIWebView
,都会显示旧网页.所以我通过简单地设置cachePolicy
请求的属性找到了解决方案.使用a NSMutableURLRequest
设置此属性.所有这一切都可以正常工作,重新加载UIWebView
.
NSURL *url = [NSURL fileURLWithPath:MyHTMLFilePath]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; [self.webView loadRequest:request];
希望有所帮助!
我有几乎相同的问题.我希望清除webview缓存,因为每次我重新加载一个本地网页时UIWebView
,都会显示旧网页.所以我通过简单地设置cachePolicy
请求的属性找到了解决方案.使用a NSMutableURLRequest
设置此属性.所有这一切都可以正常工作,重新加载UIWebView
.
NSURL *url = [NSURL fileURLWithPath:MyHTMLFilePath]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; [self.webView loadRequest:request];
希望有所帮助!
我对此问题的解决方案是以UIWebView
编程方式创建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
没有被释放,你应该检查它的保留计数并了解谁保留它.