有些UIViewControllers似乎没有被解除分配。
列出和识别所有实时(非解除分配)UIViewControllers的最佳方式是什么?
答案 0 :(得分:3)
在调试器中运行app并使用"调试内存图"按钮并在左侧面板中查看视图控制器列表。如果您碰巧遵循在视图控制器名称中包含ViewController
的约定(例如MainViewController
,DetailsViewController
等),则可以过滤左侧列出的对象列表通过在"过滤器中输入ViewController
"左侧面板底部的文本框:
在这个例子中,我也点击了我的第三个视图控制器,我可以看到它是由第一个显示的第二个视图控制器呈现的。
另一种方法是使用" view debugger" ,但仅显示当前存在于活动视图控制器层次结构中的视图控制器,并且可能不显示视图当前不可见的视图控制器,因为视图控制器以模态方式呈现了另一个视图控制器。
答案 1 :(得分:1)
除了Rob的回答,如果你想看到它们实时初始化和取消初始化,你可以打印到控制台。
class Random32ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("32 did load")
}
deinit {
print("32 did deinit")
}
}
除了视图控制器之外,您可以对所有类类型执行此方法。