首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIWebView内存管理

UIWebView内存管理
EN

Stack Overflow用户
提问于 2010-06-01 23:07:13
回答 4查看 11.3K关注 0票数 18

我有一个内存管理的问题。

我正在开发一个大量使用UIWebView的应用程序。这个应用程序在从我的服务器加载内容时动态地生成大量的UIWebViews。其中一些UIWebViews非常大,有很多图片。

如果我使用仪器来检测泄漏,我不会检测到任何泄漏。但是,分配了很多对象,我怀疑这与UIWebViews有关。

当When视图因为不再需要而释放时,似乎并不是所有的内存都被释放了。我的意思是,在向我的服务器发出请求后,应用程序会创建一个UITableView和许多8Mb视图(仪器显示大约8Mb)。当用户点击返回时,所有内存都会被释放,但内存使用量只会减少大约2-3Mb,使用应用程序5-10分钟后,它就会崩溃。

我是不是遗漏了什么?有人知道会发生什么吗?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2012-06-01 21:35:08

这不是一个解决方案,而是对你面临的问题的一个可能的解释。

我使用的一个应用程序出现了内存问题。它由一个滚动视图组成(实际上),包含3个全屏大小的web视图。每个网页视图的内容大小是多个屏幕,比如平均10个屏幕。

当你加载一个webview时,整个视图都会在内存中呈现。因此,除了用于加载图像和其他数据的内存(您在Allocations工具中看到的内容)之外,web视图本身在呈现时使用您无法控制的内存。

例如,具有10页内容的768x1024 use视图将使用

768 * 1024 * 10 (页)*4(位/像素)= 31,457,280 = 30MB。

乘以3个web视图,这是应用程序直接分配的内存之上使用的90MB。

使用VM跟踪器 instrument,您可以像这样在Instruments中感受到使用了多少内存。

票数 7
EN

Stack Overflow用户

发布于 2011-04-15 04:12:09

尝试添加

代码语言:javascript
复制
[webView loadHTMLString: @"" baseURL: nil];

就在你发布webview之前。对于4.2.1中与在UIWebView中显示PDF相关的泄漏,这为我解决了大部分泄漏问题。

票数 5
EN

Stack Overflow用户

发布于 2012-07-03 18:08:41

在您的viewWillDisappear方法中编写以下代码:

代码语言:javascript
复制
[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2950907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档