调用[super viewWillAppear] [super viewDidLoad]等的正确顺序是什么?

Gru*_*kes 11 objective-c ios

当提供的实现viewWillAppear,viewDidLoad,viewDidAppear,loadView等.

是否应该在执行自定义操作之前或之后调用超类对应的方法?

如果以错误的顺序执行会有什么可能的后果?

它应该是:

- (void)viewWillAppear:(BOOL)animated
{    
    [super viewWillAppear:animated];
    stuff
}
Run Code Online (Sandbox Code Playgroud)

要么

- (void)viewWillAppear:(BOOL)animated
{    
    stuff
    [super viewWillAppear:animated];
}
Run Code Online (Sandbox Code Playgroud)

等等

Pro*_*eus 8

对于你想做的绝大多数事情,它根本没有任何区别.首先将呼叫置于"超级"是很方便的,因为以后很容易检查确保你正在呼叫超级.Apple的文档只是声明"你必须在实施中的某个时刻调用super".

有一种情况更可能很重要.如果您不直接从UIViewController继承,而是从另一个自定义类继承,那么您应该在做出决定时研究该类的特定行为.通常,调用super first会产生一个好的设计模式,以便在调试时始终预测行为.