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

fir*_*fir 5 oop objective-c ios

[抱歉我的英语不好]

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

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

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

    [super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)

要么

- (void)viewDidLoad
{
    [super viewDidLoad];

    /*
       my code
     */
}
Run Code Online (Sandbox Code Playgroud)

还是依赖?

jus*_*tin 6

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

一些有助于的概括:

  • 当你构建对象状态(viewDidLoadinit...)的一部分时,super首先调用.
  • 当你破坏对象状态(viewDidUnloaddealloc)的一部分时,通过superlast 调用.
  • 如果我确定订单无关紧要,那么我只需先打电话super以便于组织.


Wev*_*vah 1

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