每當我加載一個新頁面時,顯示加載前頁面的時間很短。如何從UIWebview或dealloc中刪除緩存UIWebview
如何清除緩存?另一種可能性是釋放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;
}
什麼是exampleFrame,webViewBed和exampleView?什麼是autoresizingMask?我沒有實現'UIWebViewDelegate'協議,所以我不需要委託。 'addSubview'不適合我,因爲我的'UIViewController'不支持這個。據我所見,你不會在'viewDidDisappear'上發佈web視圖。你只能從超級視圖中刪除它並將其設置爲「nil」。我試過你的方法,我只能看到一個白色的屏幕。我編輯了我的問題,以便您可以看到我的代碼。 – testing 2010-10-03 12:34:42
exampleFrame只是您創建的UIWebView的大小。 webViewBed不應該是這個例子的一部分,它在這個上下文中沒有用。 exampleView是你添加UIWebView的視圖。 當然,您將視圖()添加到視圖,而不是查看控制器。所以你必須做一些像[viewController.view addSubview:...]。 我正在發佈webview,它是一個屬性(請參閱「self。」?),因此您可以將其設置爲零,並將其釋放。 – mips 2010-10-18 21:39:50
完美! 這是我發現工作的互聯網上唯一的解決方案! – Ravikant 2017-02-08 09:56:31