为了账号安全,请及时绑定邮箱和手机立即绑定

`[super viewDidLoad]`约定

`[super viewDidLoad]`约定

潇潇雨雨 2019-10-18 11:14:49
我看到在实现之前和实现之后都调用了[super viewDidLoad]的一些示例代码。我知道您不必总是叫super(在其他许多讨论中都可以看到)。当您调用它时,是在编码之前还是之后?这可能会产生影响,具体取决于super的实现方式。尽管您不必知道super的实现即可编写您的实现。当然,这适用于所有UIViewControllers委托方法(willAppear,didAppear等)。有什么想法吗?
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

我的经验法则是:如果您要进行与初始化相关的操作,请始终先调用超类的方法(如果要完全调用它)。这使超类有机会进行以后在方法中可能要依赖的任何设置。如果您要进行与破坏相关的操作,请最后调用超类的方法。这样可以确保在整个方法执行过程中都可以依赖对象的状态。最后,根据具体情况处理其他情况。例如,如果要处理事件,则可能要先处理该事件,并且仅在您选择不处理该事件或以某种方式对其进行了更改并希望将其传递给事件时才调用超类的方法。链。


查看完整回答
反对 回复 2019-10-18
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

假设您有2个班级,一个父母和一个孩子。子级从父级继承。他们有一个叫做greet的方法,该方法返回一个字符串。


父方法如下所示:


码:


-(NSString *)greet {

 return @"Hello";

}

我们希望孩子向父母学习。因此,我们用super表示问候,妈妈会打招呼,但也有一些自己的补充。


代码://从父类继承


-(NSString *)greet {

NSString *parentGreeting = [super greet];

return [parentGreeting stringByAppendingString:@", Mommy"]

}

因此,现在父母打招呼“你好”,孩子打招呼“妈妈你好”。稍后,如果我们更改父母的问候,只返回“嗨”,那么这两个课程都会受到影响,您将获得“嗨”和“嗨,妈妈”。


super用于调用超类定义的方法。它用于访问已被子类覆盖的方法,以便该类可以将其自己的代码包装在其父类实现的方法周围。如果您要进行任何继承都非常方便。


查看完整回答
反对 回复 2019-10-18
  • 2 回答
  • 0 关注
  • 537 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信