我应该在我自己的代码之后还是之前调用 [super superMethod]?
Posted
技术标签:
【中文标题】我应该在我自己的代码之后还是之前调用 [super superMethod]?【英文标题】:should I call the [super superMethod] after my own code or before it? 【发布时间】:2011-09-16 07:35:16 【问题描述】:[对不起我的英语不好]
问题很简单(但我在表达和在谷歌中找到它时遇到了麻烦)......
我应该(在所有类似的情况下,当我覆盖超级方法时,不仅仅是这个)使用:
- (void)viewDidLoad
/*
my code
*/
[super viewDidLoad];
或
- (void)viewDidLoad
[super viewDidLoad];
/*
my code
*/
还是取决于?
【问题讨论】:
一般来说,super
调用应该在“建立”时在例程的开始,在“拆除”时在结束。
【参考方案1】:
在某些情况下,顺序无关紧要。在其他情况下,秩序至关重要。
一些有帮助的概括:
在构造对象状态的一部分(viewDidLoad
和init...
)时,首先调用super
。
当您要破坏对象状态的一部分(viewDidUnload
或 dealloc
)时,最后调用 super
。
如果我确定订单无关紧要,那么我只需先致电super
以方便组织。
【讨论】:
【参考方案2】:这取决于方法;例如-[super init]
(之前)与-[super dealloc]
(之后)。
【讨论】:
好吧 TNX,但也许有人应该在这里多谈谈这个话题:)以上是关于我应该在我自己的代码之后还是之前调用 [super superMethod]?的主要内容,如果未能解决你的问题,请参考以下文章
在从初始化程序返回之前,不会在所有路径上调用 super init