所以我在 UINavigationController 中有一个 UIWebView,它在 UITabBarController 中,其中 UIWebView 基本上构成了整个 View 。
在 UIWebView 中,我正在显示来自 Web 服务器的内容,当您向下滚动并到达底部时,该服务器的高度会增加。一段时间后,我开始收到内存警告,并且在滚动更多之后,最终,整个应用程序崩溃并显示一条错误消息:Terminated due to Memory Error
。
但是,我仔细监控了应用程序的内存使用情况,没有发现任何表明应用程序已满内存或类似情况的信息。
当我收到警告时,我还记录了 Web View ScrollView 的内容大小,高度从 30 000 到 60 000 不等,直到我收到第一个警告。我也试过在没有任何图像元素的情况下运行 HTML 内容,没有产生任何明显的差异。
那么,我错过了什么? 内存是否以某种方式被填满,导致应用程序崩溃?
关于我可以尝试的调试工具/方法有什么建议吗?
欢迎所有提示!
最佳答案
尝试使用分页网页,您可以使用 NSURLProtocol 为页面缓存数据。
它会将页面和缓存加载到磁盘上,因此向后导航将从缓存中进行,并且只有 1 个页面会在正在查看的内存中。
这是你可以用 UIWebView 做的最好的,或者你可以选择 MKWebView,它可以为你提供额外的功能。
关于ios - 不断增长的 UIWebView 导致 "Received memory warning."并最终使应用程序崩溃 "Terminated due to Memory Error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28875751/