ios - 不断增长的 UIWebView 导致 "Received memory warning."并最终使应用程序崩溃 "Terminated due to Memory Error"

标签 ios objective-c iphone swift uiwebview

所以我在 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/

相关文章:

ios - 在 firebase Root 上的 IndexOn 查询整个数据库 swift 3

ios - 将 static void * 转换为 NSObject*

ios - 延迟 commitEditingStyle 中的模型和 TableView 更改

iphone - HTTP 错误 408 访问 Web 服务

iphone - 确认应用内购买时出现未知应用

ios - Swift 良好编码实践 : If statement with optional type Bool

ios - 从屏幕向上移动时如何在表格 View 中设置滚动偏移量?

iphone - 检测动画的完成

ios - 在裁剪区域下显示 View /点/smt

iOS Core Data 无法从存储的 URI 打开图像