在一个针对iOS 12的Swift项目中,我有一个子视图控制器,该子视图控制器从其父视图中移除后(以及从.superview中移除了它的视图之后)仍保留着。
Xcode的Memory Debugger显示如下:
右侧的选定对象(IAIARViewController)是意外保留的对象。我假设深色线/箭头表示强引用,而浅灰色线(例如来自SCNRenderer)表示弱引用,这意味着保留实例的罪魁祸首是ViewController的_childViewControllers NSMutableArray存储。
但是,当我打印NSMutableArray(在链中最接近IAIARViewController实例的描述)的描述时,我得到:
Printing description of $20:
<__NSArrayM 0x112e12370>(
<***.IAIChartViewController: 0x113226400>,
<***.IAIMapViewController: 0x113093400>
)
即数组中没有IIAARViewController的实例(内容是我所期望的。)
这似乎可能是来自Xcode内存图调试器的错误信息。还有什么可能导致IAIARViewController被保留?