我正在开发一个iOS应用程序,它会大量使用多个UIWebViews。所有的请求都是从应用程序包中的本地html文件加载的。我发现真棒技巧试图将防止在释放此内存泄漏:http://www.codercowboy.com/code-uiwebview-memory-leak-preventionUIWebView内存管理技巧
我所希望做的是创造出拥有3个的UIWebView实例池Factory类,并要求一个UIWebView任何时候,都应该要求来自此池的实例。所以我永远不会解除分配WebViews,除非遇到内存警告,如果需要的话我可以取消分配WebViews。
这是我到目前为止想到的,并且正在寻找任何额外提示或对我的建议的评论。
- 一旦池已满,必须重新使用WebView。它将是先进先出型堆栈。
- 一旦webview被请求重用,它将执行HTML实现中定义的销毁方法来清空全局变量。这可以使用UIWebView的stringByEvaluatingJavascriptFromString
- 完成后,WebView将执行document.innerHTML =“”;清除文件。
- 重新使用的UIWebView将加载新的请求。
- 我听说使用多个图像可以使用大量的内存。当池中的UIWebView不在屏幕上时,用小图像替换所有标签源是否有好处?
欣赏这里的任何输入!
谢谢, Fergal。
更新:**我试图创建一个池并实现上面记录的步骤,但发现通过清除其内容重新使用UIWebView,然后重新加载新内容比释放/重新分配内存泄漏更多的内存 - 分配UIWebView。我尝试这个项目的原因是,我发现也分配/释放泄漏内存,但不像重新使用Web视图。 – 2012-08-13 20:50:47