gpt4 book ai didi

ios - 从父 View Controller 中删除后保留 subview Controller

转载 作者:行者123 更新时间:2023-11-29 05:30:57 27 4
gpt4 key购买 nike

在面向 iOS 12 的 Swift 项目中,我有一个 subview Controller ,该 subview Controller 在从其父 View 中删除后(以及在其 View 从 .superview 中删除后)被保留。

Xcode 的内存调试器显示如下:

Xcode memory debugger screenshot

右侧选定的对象 (IAIARViewController) 是意外保留的对象。我假设深色线/箭头表示强引用,浅灰色线/箭头(例如来自 SCNRenderer)表示弱引用,这意味着保留实例的罪魁祸首是 ViewController 的 _childViewControllers NSMutableArray 存储。

但是,当我打印 NSMutableArray 的描述(链中距离 IAIARViewController 实例最近的一个)时,我得到:

Printing description of $20:
<__NSArrayM 0x112e12370>(
<***.IAIChartViewController: 0x113226400>,
<***.IAIMapViewController: 0x113093400>
)

即数组中没有 IAIARViewController 的实例(并且内容是我所期望的。)

这似乎可能是来自 Xcode 内存图形调试器的错误信息。还有什么可能导致 IAIARViewController 被保留?

最佳答案

您可以尝试对 Controller 的属性(vars)进行一一注释,看看它们是否仍然保留它。我认为问题出在这些属性之一上。

此外,您还可以使用仪器检查泄漏(查看屏幕截图)。它可以为您提供更详细的信息。 enter image description here

关于ios - 从父 View Controller 中删除后保留 subview Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57580923/

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