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

时间:2012-02-10 21:07:25

标签: ios objective-c

提供viewWillAppearviewDidLoadviewDidAppearloadView等的实施时

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

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

即。

应该是:

- (void)viewWillAppear:(BOOL)animated
{    
    [super viewWillAppear:animated];
    stuff
}

- (void)viewWillAppear:(BOOL)animated
{    
    stuff
    [super viewWillAppear:animated];
}

1 个答案:

答案 0 :(得分:8)

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

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