我在使用UIWebViews时遇到了问题,我在这里看到了同样的问题,但没有有用的答案.问题在于:UIWebView内存管理.我会引用它:
我正在开发一个大量使用UIWebView的应用程序.这个应用程序在从我的服务器加载内容时动态生成大量的UIWebViews.其中一些UIWebView非常大,并且有很多图片.
如果我使用仪器检测泄漏,我没有检测到任何泄漏.但是,分配了很多对象,我怀疑这与UIWebViews有关.
当webviews因不再需要而发布时,似乎并非所有内存都被释放.我的意思是,在向我的服务器发出请求后,该应用程序创建了一个UITableView和许多webview(仪器说大约8Mb).当用户点击时,所有这些都被释放但内存使用量仅下降约2-3 Mb,使用该应用程序5-10分钟后它崩溃.
我创建了简单的测试应用程序并获得了相同的结果.
这是一个tableView,我正在创建这样的DetailsView:
DetailsVC *detailViewController = [[DetailsVC alloc] initWithNibName:@"DetailsVC" bundle:nil]; detailViewController.n = indexPath.row; [self.navigationController pushViewController:detailViewController animated:YES]; [detailViewController release];
在DetailsVC中,我在IB中创建了一个webView.我加载像这样的HTML:
NSString *urlAddress; if (self.n == 0) { urlAddress = @"http://www.google.com"; } else { urlAddress = @"http://www.yahoo.com"; } NSURL *url = [NSURL URLWithString:urlAddress]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [self.webView loadRequest:requestObj];
我也这样做:
- (void)viewDidUnload { self.webView = nil; }
就是这样,每次我在RootViewController中选择任何webView时,我都会丢失2-3 Mb的内存,这个问题是否有解决方案?
谢谢.