拆卸UIViewController时总是调用viewDidUnload和dealloc?

我想知道在UIViewController拆除过程中是否总是调用viewDidUnloaddealloc 。 有没有可能dealloc可以调用我的视图控制器没有viewDidUnload被首先调用?

无论哪种情况,如果我安全地释放了这两个方法中的属性并保留了引用,那么调用这两种方法都不会成为问题 – 但是我想知道是否有人确切地知道或者可以揭示拆除处理。

2012更新:这是很方便的注意,如果iOS 6的viewDidUnload已被弃用,应该replace为手动视图拆卸, 如果需要didReceiveMemoryWarning

一个关于新的UIView / UIViewContoller的好文章,以及新的行为,它对joe conway博客的影响

每次像dealloc方法一样, viewDidUnload 不会被调用。 只有当你的应用程序收到低内存警告时才调用viewDidUnload

试想一下,如果你在viewDidUnloaddealloc方法中释放你的对象。 如果每次都被调用,那么你正在释放已经释放的对象,这将导致应用程序崩溃,不是吗? viewDidUnload是由苹果公司提供的一个地方,当收到低内存警告,因为你知道在iPhone我们有内存限制清理的东西。

相当深思,viewDidiUnload方法只有在出现内存警告时才被调用。 好的做法是在这个方法中释放必要的对象,并使对象为零。