- (void)viewDidAppear:(BOOL)animated {
<CODE BEFORE>
[super viewDidAppear:animated];
<CODE AFTER>
}
什么是正确的,将所有代码放在超级调用之前或之后?它的工作方式是双向的,但我不知道是等到电话结束还是在开始时提交更好?
干杯
- (void)viewDidAppear:(BOOL)animated {
<CODE BEFORE>
[super viewDidAppear:animated];
<CODE AFTER>
}
什么是正确的,将所有代码放在超级调用之前或之后?它的工作方式是双向的,但我不知道是等到电话结束还是在开始时提交更好?
干杯
一般的经验法则是在设置时首先调用它(如这里),并在拆除时最后调用它。
通常,您的代码应该在调用 super 之后进行。一个明显的例外是 dealloc,在这种情况下,您想[super dealloc]
在自己清理完之后再调用。
这取决于具体情况,真的:
对于初始化/清理,显然,由于子类依赖于它的超类状态,它应该在初始化之后和之前清理。
通常,您可能非常需要在超级调用之前和之后添加行为,甚至完全忽略超级调用(毕竟,这就是方法覆盖的用途)。
在这种精确的情况下,请参阅其他答案;但由于viewDidAppear:
是一种类似通知的方法,它实际上取决于您的代码是否需要完全初始化的对象,或者参与初始化本身,因此必须在完成后才继续进行超级调用。
这取决于你在做什么。你能提供一些关于你正在使用的对象的上下文吗?
例如,在对象销毁的上下文中,您最后调用 super。
- (void)dealloc {
[someObj release];
[super dealloc];
}