【问题标题】:Massive UIWebView Memory Leak大规模 UIWebView 内存泄漏
【发布时间】:2011-09-26 11:31:21
【问题描述】:

连续调用

[self.webView loadHTMLString:[_detailItem htmlText] baseURL:nil];

导致我的内存使用量在 iPad iOS 4.3(设备)上爆炸式增长。只需注释掉该行即可解决问题,但我需要能够显示 HTML 内容。

官方文档没有提到任何关于 UIWebView 保留/释放内容或缓存的内容,也没有提到它的内存管理细节。

现在,实例本身在 NIB 文件中被实例化,我所做的就是使用新内容调用上述方法。我是否必须在每次请求时释放/alloc-init UIWebView 以避免此问题?这是一个已知问题吗?

我知道问题不在于我的代码,因为只需注释掉该行即可解决问题。我的对象被正常释放。 UIWebView 是罪魁祸首。

更新

每次都释放和重新分配 Web 视图确实解决了问题。因此,请注意使用 Web 视图进行连续加载的任何人:分配、执行加载、释放、分配……您不会有任何内存问题。

【问题讨论】:

标签: ios cocoa-touch memory-management memory-leaks uiwebview


【解决方案1】:

没有足够的积分来评论。

StackOverflow Reused UiWebView 的相关帖子引用了一位 Apple 工程师的话“不要重复使用 UIWebView,这不是它们的用途。”

如果确实需要复用 UIWebView,可以使用 Java Script。类似的东西:[self.definitionWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"setBody(\"%@\");", _detailItem htmlText]];

【讨论】:

    猜你喜欢
    • 2015-04-08
    • 1970-01-01
    • 2013-11-13
    • 2023-04-07
    • 2011-09-19
    • 2010-10-13
    • 2011-04-08
    相关资源
    最近更新 更多