我看到一些在实现之前和实现之后调用[super viewDidLoad]的示例代码.

我知道你不必总是叫super(正如许多其他讨论中所看到的那样).

这可能会产生后果,具体取决于super的实现.尽管你不需要知道super的实现就可以编写你的.

当然,这适用于所有UIViewControllers委托方法(WillAspect、DidAspect等)

有什么 idea 吗?

推荐答案

我的经验法则是:如果你正在做一些与初始化相关的事情,一定要先调用超类的方法(如果你要调用它的话).这使super类有机会进行任何设置,这些设置在以后的方法中可能会用到.如果您正在执行与销毁相关的操作,请最后调用超级类的方法.这可以确保在方法的整个执行过程中都可以依赖对象的状态.最后,以个案为基础考虑其他情况.例如,如果您正在处理一个事件,您可能希望首先处理该事件,并且仅当您 Select 不处理该事件,或者如果您以某种方式更改了该事件并希望沿着事件链传递它时,才调用该超类的方法.

Objective-c相关问答推荐

如果DISPATCH_SOURCE_SET_EVENT_HANDLER中的SELF需要为弱

NSViewController 中的 viewDidLoad?

如何使 UIView 动画序列重复和自动反转

UIApplication.sharedApplication.delegate.window 和 UIApplication.sharedApplication.keyWindow 有什么区别?

如何将 NSDate 转换为今天、昨天、一周前、一个月前、一年前等相对格式?

在Objective-C中从类名的NSString创建对象

lldb 无法打印变量值并显示错误:对 'id' 的引用不明确

如何测试生产推送通知?

iOS 7 - 键盘动画

对块进行类型定义是如何工作的

Objective-C 中是否有一些文字字典或数组语法?

判断 NSString 是否只是由空格组成

UITabBar 未在 ios 7 中显示所选项目图像

CFURLCopyResourcePropertyForKey 失败,因为通过 URL 没有方案

在 Objective-C 中,你在哪里声明一个常量?

HTML 内容适合 UIWebview 而无需缩小

AVAssetImageGenerator 提供旋转的图像

UICollectionView 更新单个单元格

iPhone UILabel 文字软阴影

iPhone SDK:如何在视图中播放视频?而不是全屏