小编met*_*ral的帖子

使用UIWebView loadRequest的General-Block 56,1024,8,244,24内存泄漏

我得到了内存泄漏,我无法通过泄漏,构建/分析或整体检查如何修复.我有一个非常强大的概念,它是由于从我的UIWebView加载JavaScript的命令的loadRequest,但我无法弄清楚什么是错的.

这是我的设置:

我有一个tabbarcontroller,我编程与4-视图控制器创建:一个表格图,MapView类,另一个表视图和网页视图,分别.

  • 第一个tableview显示静态数据.
  • mapview显示注释,点击时填充第4个选项卡的变量,webview,并切换到webview以显示本地存储的html/javascript文件,这是一个3d模型
  • 第二个tableview是mapview中每个注释所代表的所有相同信息的列表,只是表格形式.它在填充变量,切换和显示webview中的html/javascript文件方面具有相同的功能
  • webview显示加载的html/javascript文件,如果没有显示UIAlertView从mapview或列表中选择一个

当我最终从webview执行loadRequest()时,最初一切正常.然而,当我开始在标签之间切换并查看不同的3D模型时(即转到地图视图,单击注释以显示模型x,在webview中观看它,然后切换到列表并单击一行以显示模型y(或者x也是)并且在webview中观察它的负载)我开始在ipad上接收内存泄漏,而不是模拟器.这些内存泄漏几乎总是如下:通用块56,1024,8,244和24,并且没有负责任的帧,库或堆栈跟踪.

在webview中,如果我注释掉loadrequest行或者使用请求对象= nil执行loadrequest,我没有内存泄漏,但是当我切换到使用指向本地文件的url对象时(我甚至尝试将其指向Google .com,它有javascript)它在内存泄漏中爆发.

我试图做以下每一件事:

  • [self.webView loadRequest:nil];
  • [self.webView loadHTMLString:@""baseURL:nil];
  • [self.webView stopLoading];

在我的webViewController的viewWillDisappear中尝试完全清理webview以便将来重用,但它似乎没有提供太多帮助.我还尝试在执行loadRequest之前执行此操作,但我得到了相同的内存泄漏.

  • fyi,我正在运行最新的xcode 4.0.2,ipad有最新的更新,4.3.2
  • 从上一篇文章我评论并且没有收到回复(一般块内存泄漏)我认为问题与webview不知道如何在切换视图时完全摆脱javascript这一事实有关
  • 我用一个没有javascript的简单html文件做了测试,并且一般块内存泄漏都消失了.但是,我得到其他cfnetwork/http消息内存泄漏,但这是一个不同的故事,而不是我目前关注的问题.

下面是单击mapView上的其中一个注释的示例代码,它触发webViewController中的loadModel函数:

- (void) mapCallOutPressed: (UIView *) sender {

NSInteger selectedIndex = sender.tag;
MyLocation *selectedObject = [_mapView.annotations objectAtIndex:selectedIndex];

MyModel *model = selectedObject.model;

NSLog(@"Model selected from mapview = %@", model.description);

// Get reference to the webview from the tabBarController (viewController's index=3)
WebViewController *webViewController = [self.tabBarController.viewControllers objectAtIndex:3];
webViewController.model = model;

[webViewController loadModel];

    // Switch tabs to the webView …
Run Code Online (Sandbox Code Playgroud)

iphone memory-leaks uiwebview mkmapview ipad

5
推荐指数
1
解决办法
1921
查看次数

标签 统计

ipad ×1

iphone ×1

memory-leaks ×1

mkmapview ×1

uiwebview ×1