Skip to content

Instantly share code, notes, and snippets.

@ArtSabintsev
Created January 24, 2013 21:53
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ArtSabintsev/4628265 to your computer and use it in GitHub Desktop.
Save ArtSabintsev/4628265 to your computer and use it in GitHub Desktop.
How to properly remove an instance of UIWebView and avoid memory leaks
// Destroy UIWebView
- (void)destroyWebView
{
[self.webView loadHTMLString:@"" baseURL:nil];
[self.webView stopLoading];
[self.webView setDelegate:nil];
[self.webView removeFromSuperview];
[self setWebView:nil];
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
}
// UIWebViewDelegate Methods
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
return YES;
}
@capripot
Copy link

Is it still the case ?
Why do you use webView:shouldStartLoadWithRequest:navigationType: ?

@Mr-Mojo-Risin
Copy link

It does not work very well.

@sealedace
Copy link

Not work for me.

@ArtSabintsev
Copy link
Author

I have no idea if this works anymore. I put this solution together in early 2013, from a project I worked on in 2012.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment