我正在尝试了解 unwind segue 过程。
当 unwind segue 像UINavigationController
后退按钮过程一样执行时,是否调用源视图控制器的 dealloc 方法?
如果不是,这是否意味着内存泄漏?
我正在尝试了解 unwind segue 过程。
当 unwind segue 像UINavigationController
后退按钮过程一样执行时,是否调用源视图控制器的 dealloc 方法?
如果不是,这是否意味着内存泄漏?
不是直接的。当所有对视图控制器的强引用都被放弃时,它将被调用。调用 unwind 后,uinavigation 控制器应该与视图控制器一起完成,只要您没有在某种导航控制器或其他东西中强烈保留它。
它并不总是立即发生,想想自动释放池。确保您也没有任何强大的代表渠道。(大罪魁祸首)
一个有用的提示是在视图控制器的代码“self”的任何地方寻找,并确定它是否强大,如果是,你必须在 unwind 中将它 nil 或者不会调用 dealloc - 你不应该担心ARC 的 dealloc 太多 - 除非您有一些需要管理的对象或非 auto-nil 弱引用。