gpt4 book ai didi

ios - UIWebView 内存泄漏

转载 作者:可可西里 更新时间:2023-11-01 06:12:14 25 4
gpt4 key购买 nike

我有一个 iPad 应用程序(IOS 4.3 和 5.0),每次用户向前或向后翻页时,它都会创建一个至少有 2 个 subview 的 UIView。 2 个 subview 是 UIWebView 对象。

在每次相关的滑动中,旧的 UIWebViews 被删除并正确释放(removeFromSuperview 然后停止加载并将委托(delegate)设置为 nil)并且父 UIView 被释放。我可以确认父 UIView 和 2 个子 UIWebView 都完全消失了。

我可以看到 webviews 被删除时的保留计数,我很确定它们确实每次都被删除了。然而,我的内存分配在每次滑动时继续增加 ~200-350k 。仪器没有泄漏,但我可以看到内存使用量缓慢上升。在 iPad 1 上,应用程序最终(在适度使用的 6-10 分钟内)收到多个内存警告并终止。生成 LowMemory 崩溃日志...等。

我们使用 stringByEvaluatingJavaScriptFromString 和 loadRequest 来填充 Webview。即使没有向 webView 注入(inject)或加载任何内容,内存使用量也会逐渐增加。

是否有人在使用 UIWebViews 时遇到过这种行为?有没有人成功处理过这个问题?

尽管如此,我们将不胜感激评论和回答。

最佳答案

尝试使用 Instruments 但使用“Allocations”模板并观察 UIWebView 的“#Living”列。我通常这样使用它:

  1. 使用分配模板分析应用
  2. 通过浏览所有选项卡、滚动等方式“预热”应用。
  3. 按“Mark Heap”,这将创建一个“Baseline”heapshot
  4. 做你认为会导致物体停留的事情
  5. 再次按“Mark Heap”,这将创建一个“Heapshop #”heapshot
  6. 检查“Heapshop #”中的对象,这将显示自上次堆快照以来创建和存活的对象的大小和数量。
  7. 转到 4

关于ios - UIWebView 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8946546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com