我有UIWebView的问题。我正在使用此组件在iPad / iPhone上加载普通网页。 UIWebView在modalViewController中呈现。有些页面非常耗费内存,有些还有Flash内容。
问题是有时在某些页面上我会收到内存警告
Received memory warning. Level=1
当发生这种情况时,当我关闭这个modalViewController(其中包含在webView中的页面)比上一个视图自动重新加载时 - 方法viewDidLoad再次被触发。
我怀疑UIWebView中的某些页面消耗了大量内存而不是应用程序释放其视图的内存,但不会崩溃。
有没有办法限制webView的内存消耗,还是有其他方法可以避免这种内存警告?
谢谢!
答案 0 :(得分:3)
您几乎无法控制UIWebView
个对象的内存使用情况。您也几乎无法控制整个系统内存使用情况。所以没有办法避免内存警告。 iOS期望您的应用在接收内存警告时表现正常,因此应编写viewDidLoad
方法以处理内存警告后重新运行。
限制UIWebView
内存使用量的唯一方法是让它查看简单的网页。从你的问题来看,这不是一个选择。
编辑: viewDidUnload
。期望此方法释放在viewDidLoad方法中易于重新创建的任何内容。当此视图返回到屏幕时,不要释放要向用户显示的状态信息。然后在viewDidLoad
方法中检查您创建的所有对象。如果它们是nil
,则需要初始化它们,否则这不是第一次调用viewDidLoad
方法,并且您不应该初始化对象agin。
换句话说:viewDidUnload
处理内存不足的情况,viewDidLoad
不应该假设它运行一次。