首先还是最后调用父类(super class)的方法有关系吗?例如
-(void)didReceiveMemoryWarning {
/* do a bunch of stuff */
[super didReceiveMemoryWarning];
}
对比
-(void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
/* do a bunch of stuff */
}
其他方法如 viewWillAppear、willRotateToInterfaceOrientation 等的相同问题
我正在寻找有意义的差异,而不仅仅是风格上或哲学上的差异(尽管我们也欢迎这些差异)。
最佳答案
典型的 Cocoa 约定:
- 如果您正在执行设置,请调用 super 第一
- 如果你正在表演 拆解,调用 super LAST
因此,初始化、viewDidLoad 等属于第一种情况。内存警告、viewDidUnload 和 dealloc 属于第二种情况。
您还应该设计您的类以遵循此约定。应特别注意任何偏差。
相关SO答案:
`[super viewDidLoad]` convention
添加: 在设置期间首先调用 super 的基本原理是,您希望在扩展功能之前确保一切就绪。推论是,当您解除分配时,您不希望您的子类所依赖的任何父类(super class) ivar 在您有机会处理它们之前被解除分配。
这对于 UI 更新是有意义的,并在下面的评论中指出。
关于ios - 在 Objective C 中调用父类(super class)方法的时机是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1005196/