iPhone:用UIWebView加载Office文档泄漏。任何想法如何避免它?

时间:2010-05-06 17:07:46

标签: iphone memory-leaks uiwebview

虽然有很多关于UIWebView漏洞的帖子,但我相信我的帖子更加特别,因此值得在这里发帖。

每次加载Office文档(如Word或Excel文件)时,都会看到可重现的 泄漏。

例如,每次显示180KB的.doc文件时,都会出现100KB的泄漏。这种情况发生在模拟器和实际设备上,运行OS 3.1.3。

使用Leaks仪器可以看到泄漏 ,但只能通过ObjectAlloc仪器查看malloc实例。

这是仪器轨迹的图片:

alt text http://files.tempel.org/iPhone/UIWebView-Leaking.png

我还制作了一个演示项目UIWebView-Leak.zip,因此您可以自行验证。

要查看泄漏,请使用ObjectAlloc工具,切换到您看到各个分配对象的视图,然后按大小排序,以便在组中看到大的,就像上面的图片一样。然后查看Office文档几次,找到即使在实际的UIWebView被释放后仍保持“实时”的Malloc对象。

这是一个已知的错误吗?或者有什么方法可以避免这些泄漏?即,您是否已成功在iPhone上显示Office文档而导致此类泄漏?

注意:我现在也向Apple报告此错误(ID 7950594)

我仍在等待某人(包括Apple)确认这是一个真正的泄漏或说明为什么不是(即我做错了什么或作出错误的假设)

2 个答案:

答案 0 :(得分:1)

原来这是一个真正的错误。 Apple告诉我他们已经在即将发布的iPhone OS版本中修复了它。 没有解决方法。

答案 1 :(得分:0)

这是一个可能适合您的解决方法(仅使用PDF文件测试):

尝试添加

[webView loadHTMLString: @"" baseURL: nil];

在发布webview之前。有关在UIWebView中显示PDF的4.2.1中的泄漏