我想知道在UIViewController拆除过程中,viewDidUnload
和dealloc
是否总是连续调用。如果没有先调用dealloc
,我的视图控制器是否可以调用viewDidUnload
?
在任何一种情况下,如果我安全地释放属性并在两种方法中保留引用,如果两种方法都被调用就不会有问题 - 但我想知道是否有人确切知道或者可能会对拆卸过程。
2012年更新:很容易注意到iOS 6 viewDidUnload
已被弃用,应该替换为{{>在需要时的手动视图拆分 1}}。
关于新UIView / UIViewContoller的一篇好文章及其新行为及其对joe conway blog
的影响答案 0 :(得分:35)
viewDidUnload
不会像dealloc
方法那样每次都被调用。仅当您的应用收到内存不足警告时才会调用viewDidUnload
!
如果您要使用viewDidUnload
和dealloc
方法发布对象,请考虑一下。如果两次都被调用,那么你正在释放已经释放的对象,这会导致应用程序崩溃,不是吗? viewDidUnload
是Apple提供的用于在收到低内存警告时清理内容的地方,因为您在iPhone中知道我们有内存限制。
答案 1 :(得分:0)
非常周到,只有在出现内存警告时才会调用viewDidiUnload方法。好的做法是在此方法中释放必需的对象,并使对象为零。