And*_*dei 5 memory memory-leaks uiwebview ios
你好我有一个UIWebView泄漏内存问题基本上我有我的WebView显示页面,链接在另一个控制器的UITableView中.我用带有导航器的WebView推送控制器,并将带有retain属性的链接传递给它.
我尝试过互联网上的所有内容,例如:
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
Run Code Online (Sandbox Code Playgroud)
//Clear cache of UIWebView
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
[sharedCache release];
sharedCache = nil;
[[NSURLCache sharedURLCache] removeAllCachedResponses];
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
-(void) viewWillAppear:(BOOL) animated
{
NSMutableURLRequest *_req=[[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:link] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:120];
[_req setHTTPShouldHandleCookies:NO];
[self setMyRequest:_req];
[req release];
}
[webView loadRequest:myRequest];
-(void) viewWillDisappear:(BOOL) Animated
{
[webView stopLoading];
[webView loadHTMLString:@"<html></html>" baseURL:nil];
}
Run Code Online (Sandbox Code Playgroud)
- (void)dealloc {
[myRequest release];
[webView stopLoading];
[webView release];
[link release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
现在我只在模拟器4.2和4.3上测试,我使用xcode 4,当我点击导航器上的后退按钮时,我得到了这个泄漏.
这是我的tableview控制器的代码
- (void)viewDidLoad {
webViewController=[[ItemDetail alloc] initWithNibName:@"ItemDetail" bundle:[NSBundle mainBundle] ];
[super viewDidLoad];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
webViewController.link=http://www.myLink.com;
[self.navigationController pushViewController:webViewController animated:YES];
}
-(void) dealloc
{
[webViewController release];
...
...
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
这是一个屏幕链接:http://postimage.org/image/368r0g0xw/
任何帮助将不胜感激,谢谢
-(void) viewWillAppear:(BOOL) Animated
{
//CONNECTION INIT
[web setDelegate:self];
NSURL *url=[[NSURL alloc] initWithString:link];
NSURLRequest *_req=[[NSURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:120];
[self setReq:_req];
[_req release];
[url release];
[web loadRequest:req];
}
-(void) viewWillDisappear:(BOOL) Animated
{
[self setReq:nil];
if ([web isLoading])
[web stopLoading];
[web setDelegate:nil];
}
- (void)dealloc {
[req release];
[map release];
[web setDelegate:nil];
[web release];
[link release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
现在我在返回表视图后释放它,释放它后它仍然留下大约 3 mb,但是现在当我再次创建视图并再次释放它时,这 3 mb 没有改变。诡异的...
Item Detail *webViewController=[[ItemDetail alloc] initWithNibName:@"ItemDetail" bundle:[NSBundle mainBundle] ];
[self.navigationController pushViewController:webViewController animated:YES];
[webViewController release];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3379 次 |
| 最近记录: |