【问题标题】:WebView seems to be leaking according to instruments. GeneralBlock-56根据仪器,WebView 似乎正在泄漏。 GeneralBlock-56
【发布时间】:2011-08-16 22:28:56
【问题描述】:

Instruments 报告了很多泄漏,例如:

GeneralBlock-56
GeneralBlock-8192
GeneralBlock-2048
GeneralBlock-24
GeneralBlock-32
GeneralBlock-8
GeneralBlock-16

当我打开一个只显示 UIWebView 的类时,这一切都会发生。

以下是该类的代码内容:

    appDelegate = (DemoSAPAppDelegate *)[[UIApplication sharedApplication] delegate];

UIWebView *aWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 480, 320)];
aWebView.scalesPageToFit = YES;
[aWebView setBackgroundColor:[UIColor clearColor]];
[aWebView setOpaque:NO];
NSURL *url = [NSURL URLWithString:self.urlString];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

[aWebView loadRequest:requestObj];
[[[aWebView subviews] lastObject] setScrollEnabled:YES]; 
[self.view addSubview:aWebView];
[aWebView release];

我在这里做错了吗? WebView 最后在那里发布。

我需要使用自动释放池之类的东西吗?

看到我的应用程序因此而导致内存溢出,我感到很困惑。

【问题讨论】:

  • 何时发生泄漏?视图何时显示或何时被移除?
  • 在展示和移除时发生。它与 UIWebView 显示的包含 Javascript 的 html 页面有关。 UIWebView 库泄漏。

标签: iphone objective-c ios memory-leaks


【解决方案1】:

这是在实际设备上吗?还是模拟器?模拟器使用的框架在很多地方都有漏洞;它们不像设备二进制文件那样精细。始终在实际设备上进行测试;模拟器,毕竟只是一个模拟。

【讨论】:

  • 它在设备上。搜索网络时,我发现当 UIWebView 显示的网页包含 JavaScript 时,设备上实现的网络库会泄漏。所以(据我所知)我们作为开发人员无能为力来防止这种情况发生。
猜你喜欢
  • 2011-07-25
  • 2014-07-02
  • 1970-01-01
  • 2011-11-02
  • 2021-09-14
  • 2021-10-01
  • 2011-07-11
  • 2022-01-12
相关资源
最近更新 更多