我想知道 viewDidUnload
和 dealloc
是否总是在 UIViewController 拆卸过程中连续调用。是否可以在我的 View Controller 上调用 dealloc
而无需先调用 viewDidUnload
?
在任何一种情况下,如果我在这两种方法中安全地释放属性和保留引用,那么如果这两种方法都被调用就不会有问题——但我想知道是否有人确定或可以阐明拆卸过程。
2012 更新:值得注意的是,好像 iOS 6 viewDidUnload
已被弃用,应该用手动 View 拆卸代替如果需要在 didReceiveMemoryWarning
中。
一篇关于新 UIView/UIViewContoller 和新行为及其对 joe conway blog 的影响的好文章
最佳答案
viewDidUnload
不会像dealloc
方法一样每次都被调用。 viewDidUnload
仅在您的应用收到低内存警告时调用!
试想一下,如果您同时在 viewDidUnload
和 dealloc
方法中释放您的对象。如果每次都调用两者,那么您正在释放已经释放的对象,这将导致应用程序崩溃,不是吗? viewDidUnload
是 Apple 提供的一个地方,用于在收到低内存警告时清理东西,因为你知道在 iPhone 中我们有内存限制。
关于objective-c - 拆除 UIViewController 时是否总是调用 viewDidUnload 和 dealloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1768076/