gpt4 book ai didi

ios - 使用 UITextField 发布 UIViewController 时的内存问题

转载 作者:行者123 更新时间:2023-11-29 13:51:20 25 4
gpt4 key购买 nike

我在使用包含文本字段的 View Controller 时遇到一些内存问题。

简要总结:

  • 单击一个按钮,我的应用程序将以模态方式显示一个 UIViewController(我将其称为“VC1”)。
  • 从 VC1 中,用户可以选择打开(使用 pushViewController)UITableViewController(“VC2”)并返回。
  • 从 VC1 中,用户可以选择打开(使用 pushViewController)UIViewController(“VC3”)并返回。
  • 最后用户可以关闭 VC1

VC2 和 VC2 在 VC1 中作为属性引用,它们必须保留在内存中。当用户关闭 VC1 时,我将全部释放。

VC3 包含一个只有一个 UITextField 的简单 View ,它在 viewWillAppear 被调用时 becomeFirstResponder

问题:

当我打开 VC1 和 VC2 时,返回并关闭:一切正常,应用程序返回相同的初始数量的“事件字节”(即 1,20MB)。当我打开 VC1 然后打开 VC3 时,字节变成 2MB。当我在文本字段中写东西时,分配上升到 2,50MB

  1. 此时,Instruments 发现一个 16 字节的内存泄漏,ProofReader 作为责任库,PRRfInit 作为责任调用者

  2. 返回 VC1 并关闭后,分配仍为 2,50MB在 Instruments 中按类别排序我检查了 VC1、VC2 和 VC3 的事件字节数为 0,但总体仍为 2,50MB

是否也涉及键盘?

最佳答案

我假设您是在设备而不是模拟器上进行测试 - 模拟器会产生不正确的结果。

您的应用程序使用的总内存作为内存泄漏的衡量标准毫无意义 - iPhone 会在有空闲内存时尝试缓存尽可能多的数据 - 它会加载库并将它们保留在内存中以防万一将再次使用它们。这只是一个问题,当您开始用完时,它会为您解决。

库中的 16 字节泄漏是无关紧要的(假设它只发生一次)- Apple 的库最终泄漏比我的经验更多。

有很多更好的方式来打发你的时间;)

PS ProofReader 是您包含的库还是 Apple SDK 的一部分?

关于ios - 使用 UITextField 发布 UIViewController 时的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3204866/

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