2010-07-22 30 views
1

在函数viewDidUnload中它最初是空的。但是,我正在按照他们编写的函数结尾处的教程[super viewDidUnload]进行操作。我注意到在dealloc函数中,[super dealloc]会自动写在最后。为什么它不会自动写入viewDidUnload的末尾?这有什么不同吗?它有什么作用?super viewDidUnload in Cocoa

此外,这是一个可可问题,还是一个Objective-C问题?

+0

Cocoa是用Objective-C编写的苹果框架。 Objective-C是编程语言,Cocoa是Apple提供的类的框架。类似于PHP和CakePHP,或者Ruby和Rails。 – jergason 2010-07-22 18:37:47

+0

是啊..我们可以把这个帖子改名吗? – 2012-07-14 06:13:01

回答

0

在函数结束时调用它。

我在开始时调用过很多杂项错误。我发现网上有很多地方讨论这个话题,有些人说开始,有些人说最后。在我研究之前,我认为应该在最后调用它,因为语言的结构和性质(例如触摸事件的处理方式)类似的模式。

我的逻辑表明,如果我要调用超,或者有问题的对象的父母,我必须也认为,家长或超不知道孩子对象在其默认的存在,实施,谁知道它会做什么。因此,当这种方法超越这个方法时,认为当将出口和属性设置为零时,超级的卸载方法可能会执行某些操作,例如在视图控制器中卸载视图,同时这些出口仍然存在。

由于我发现的所有问题和答案,没有明确的解决方案。苹果公司并未给出即时答案,但它们提供了如何加载和卸载视图的理解。我放弃了在这个例子上寻找例子,并且我坚持在这个函数结束时调用super的逻辑。

我不会做的是假设我可以猜测在私有API中运行的代码,除苹果文档或苹果开发人员以外的任何人都会得到正确的答案。不过,这是我根据我所经历的建议,也许正确的答案是它应该是/或取决于你在方法中做什么。打开更多的建议。