所以我在UINavigationController里面有一个UIWebView,它位于UITabBarController中,UIWebView基本上是整个视图。
在UIWebView内部,我正在显示来自网络服务器的内容,当您向下滚动并到达底部时,该服务器的高度会增加。过了一会儿,我开始收到内存警告,经过一些更多的滚动,最终整个应用程序崩溃并显示一条错误消息Terminated due to Memory Error
。
但是,我已经仔细监控了应用程序的内存使用情况,但无法找到任何表明应用程序填满内存或类似内容的内容。
当我收到警告时,我还记录了Web视图滚动视图的内容大小,并且在我收到第一个警告之前,高度从30 000到60 000不等。我也试过运行没有任何图像元素的HTML内容,没有任何明显的区别。
那么,我错过了什么? 内存是否以某种方式填充,导致应用程序崩溃?
我可以尝试一些关于调试工具/方法的建议吗?
欢迎所有提示!
答案 0 :(得分:0)
尝试使用分页网页,您可以使用NSURLProtocol缓存页面数据。
它会将页面和缓存加载到磁盘上,因此向后导航将来自缓存,只有1页将位于正在查看的内存中。
最好用UIWebView做,或者你可以选择MKWebView,它可以让你有更多的功能。