我对内存管理和 ARC 的整个概念相当陌生。
我最近研究了它,发现成功参半。
首先应该注意的是,有些 ViewController
确实会取消初始化,但我仍在学习和清理我的应用程序。
但是,我注意到的一个常见模式是,当我使用该行时,如果没有强引用,navigationController?.popViewController(animated: true)
这实际上是一个视图控制器。deinit
但是,我的问题是,当我使用 segue 并使用performSegue(withIdentifier: "showDetail_Segue", sender: nil)
该deinit
方法时,永远不会使用/调用该方法。(我只有一个打印语句来指示视图是否已被取消初始化)。在大多数情况下,当我执行 segue 时,我将数据传递给另一个视图控制器,因此,我使用以下函数override func prepare(for segue: UIStoryboardSegue, sender: Any?) {}
。
我试图将我的 segue 更改为navigationController?.pushViewController(VC, animated: true)
但我的应用程序崩溃了。
我在这里错过了什么吗?
以编程方式执行时也不会ViewControllers
取消初始化。navigationController
popped
segue
有人可以告诉我我做错了什么吗?
谢谢你。