在函数viewDidUnload中,它最初是空的。然而,我遵循了一个教程,在函数的末尾,他们编写了超级viewDidUnload。我注意到在dealloc函数中,super会在最后自动写入。为什么不在viewDidUnload的末尾自动编写?有什么不同吗?是干什么的呢?
另外,这是一个Cocoa问题,还是Objective-C问题?
发布于 2010-07-23 02:39:52
这个链接可能会有帮助:iPhone: [super viewDidUnload] calling order
基本上,如果超类只是UIViewController,[UIViewController viewDidUnload]什么也不做,所以这就是为什么不自动添加它。
发布于 2012-07-14 14:09:39
在函数的末尾调用它。
当我一开始调用时,我遇到了很多杂乱的错误。我发现网上有很多地方都在讨论这个话题,有的说是开头,有的说是结尾。在我研究之前,我认为应该在最后调用它,因为语言的结构和性质(例如如何处理触摸事件)的模式相似。
我的逻辑表明,如果我要调用有问题的对象的父对象或父对象,我还必须认为父对象或父对象在其默认实现中不会知道子对象的存在,谁知道它会做什么。因此,当重写此方法时,合理的想法是,当将outlets和属性设置为nil时,超级的unload方法可能会在这些outlets仍然存在的情况下在视图控制器中卸载视图。
由于我发现了所有的问题和答案,没有明确的解决方案。Apple没有给出直接的答案,但他们提供了对视图加载和卸载如何发生的理解。我不再寻找这个例子了,我坚持在这个函数的末尾调用super背后的逻辑。
我不会做的是假设我可以猜到在私有API中运行的是什么代码,并且除苹果文档或苹果开发人员之外的任何人都会有正确的答案。然而,这是我的建议,基于我的经验,也许正确的答案是,它应该要么/要么取决于你在方法中做了什么。欢迎更多的建议。
https://stackoverflow.com/questions/3312107
复制相似问题