展开 segue 和 dealloc

unwind segue and dealloc

我正在尝试了解 unwind segue 过程。

当 unwind segue 像 UINavigationController 后退按钮过程一样执行时,是否调用源视图控制器的 dealloc 方法?

如果不是,是否意味着内存泄漏?

不直接。 当放弃对视图控制器的所有强引用时,将调用它。 调用 unwind 后,uinavigation 控制器应该与视图控制器一起完成,只要你没有在某种导航控制器或其他东西中强烈保留它。

它并不总是立即发生,想想自动释放池。 确保您也没有任何强大的代表网点。 (罪魁祸首)

一个有用的提示是在视图控制器的代码中寻找任何地方使用 'self',并确定它是否强大,如果是,你必须在 unwind 中将其置零,否则将不会调用 dealloc - 你不必担心 ARC 太多 dealloc - 除非你有一些你需要管理的对象或非自动 nil 弱引用。