提供viewWillAppear
,viewDidLoad
,viewDidAppear
,loadView
等的实施时
在执行自定义操作之前或之后是否应该调用超类对应的方法?
如果以错误的顺序执行会有什么可能的后果?
即。
应该是:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
stuff
}
或
- (void)viewWillAppear:(BOOL)animated
{
stuff
[super viewWillAppear:animated];
}
等
答案 0 :(得分:8)
对于你想做的绝大多数事情,它根本没有任何区别。首先将呼叫置于“超级”是很方便的,因为以后很容易检查确保你正在呼叫超级。 Apple的文档只是声明“你必须在实施中的某个时刻打电话给超级”。
有一种情况更可能很重要。如果您不直接从UIViewController继承,而是从另一个自定义类继承,那么您应该在做出决定时研究该类的特定行为。通常,调用super first会产生一个好的设计模式,以便在调试时始终能够轻松预测行为。