不断增长的UIWebView导致"收到内存警告。"并最终崩溃应用程序与"由于内存错误终止"

时间:2015-03-05 10:35:22

标签: ios objective-c iphone swift uiwebview

所以我在UINavigationController里面有一个UIWebView,它位于UITabBarController中,UIWebView基本上是整个视图。

在UIWebView内部,我正在显示来自网络服务器的内容,当您向下滚动并到达底部时,该服务器的高度会增加。过了一会儿,我开始收到内存警告,经过一些更多的滚动,最终整个应用程序崩溃并显示一条错误消息Terminated due to Memory Error

但是,我已经仔细监控了应用程序的内存使用情况,但无法找到任何表明应用程序填满内存或类似内容的内容。

当我收到警告时,我还记录了Web视图滚动视图的内容大小,并且在我收到第一个警告之前,高度从30 000到60 000不等。我也试过运行没有任何图像元素的HTML内容,没有任何明显的区别。

那么,我错过了什么? 内存是否以某种方式填充,导致应用程序崩溃?

我可以尝试一些关于调试工具/方法的建议吗?

欢迎所有提示!

1 个答案:

答案 0 :(得分:0)

尝试使用分页网页,您可以使用NSURLProtocol缓存页面数据。

它会将页面和缓存加载到磁盘上,因此向后导航将来自缓存,只有1页将位于正在查看的内存中。

最好用UIWebView做,或者你可以选择MKWebView,它可以让你有更多的功能。