ios - 从父级删除后保留的子视图控制器
问题描述
在针对 iOS 12 的 Swift 项目中,我有一个子视图控制器,该控制器在从其父级中删除后(以及在其视图从 .superview 中删除后)被保留。
Xcode 的内存调试器显示了这一点:
右侧的选定对象 (IAIARViewController) 是意外保留的对象。我假设暗线/箭头表示强引用,浅灰色的(例如来自 SCNRenderer)表示弱引用,这意味着保留实例的罪魁祸首是 ViewController 的 _childViewControllers NSMutableArray 存储。
但是,当我打印 NSMutableArray 的描述(链中最接近 IAIARViewController 实例的描述)时,我得到:
Printing description of $20:
<__NSArrayM 0x112e12370>(
<***.IAIChartViewController: 0x113226400>,
<***.IAIMapViewController: 0x113093400>
)
即数组中没有 IAIARViewController 的实例(内容是我所期望的。)
这似乎可能是来自 Xcode Memory Graph Debugger 的错误信息。还有什么可能导致 IAIARViewController 被保留?
解决方案
推荐阅读
- java - 从其他设备运行时java邮件程序不起作用
- html - div元素中的footer元素和header元素会成为div元素的header和footer吗?
- xamarin - 有没有办法可以在我的 C# 代码中访问静态资源?
- angular - ngrx 不保持状态
- css - 在 FabricJS 中翻译视口时边界对象错误,用户单击对象时无法选择对象
- r - R中的许多热门编码器
- java - ByteBuffer 内存分配
- adal - 从 Azure AD Passport BearerStrategy 的 cookie 中检索 access_token
- angular - 2个模块的角度动态组件声明
- javascript - 替代 CSV 数组转换以更快地获取数据