我应该在我自己的代码之后还是之前调用[super superMethod]?

时间:2011-09-16 07:35:16

标签: objective-c ios oop

[抱歉我的英语不好]

问题很简单(但我在表达它并在谷歌中找到它时遇到了麻烦)......

我应该(在所有类似的情况下,当我覆盖超级方法时,不仅仅是这个)使用:

- (void)viewDidLoad
{
    /*
       my code
     */

    [super viewDidLoad];
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    /*
       my code
     */
}

还是依赖?

2 个答案:

答案 0 :(得分:6)

在某些情况下,订单无关紧要。在其他方面,秩序至关重要。

一些有用的概括:

  • 当您构建对象状态的一部分(viewDidLoadinit...)时,请先通过super进行调用。
  • 当您要破坏对象状态的一部分(viewDidUnloaddealloc)时,最后通过super进行呼叫。
  • 如果我确定订单无关紧要,那么我首先打电话通过super以便于组织。

答案 1 :(得分:1)

这取决于方法;例如-[super init](之前)vs -[super dealloc](之后)。