大规模UIWebView内存泄漏

4

连续调用

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

导致我的iPad iOS 4.3(设备)的内存使用量爆炸。简单地注释掉那一行就解决了问题,但我需要能够显示HTML内容。

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

现在,实例本身是在NIB文件中实例化的,我所做的一切就是使用新内容调用上面的方法。我是否需要在每次请求时释放/分配UIWebView以避免这个问题?这是一个已知的问题吗?

我知道问题不在我的代码中,因为简单地注释掉那一行就解决了问题。我的对象正常地被销毁。是UIWebView的问题。

更新

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


1个回答

0

评论点数不足。

有一篇相关帖子StackOverflow 重用 UiWebView引用了一位苹果工程师的话:“不要重用 UIWebViews,它们并不是设计用来这样使用的。”

如果你确实需要重用 UIWebView,可以使用 JavaScript。大致如下:[self.definitionWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"setBody(\"%@\");", _detailItem htmlText]];


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接