在我的大多数代码中,我为viewDidLoad和viewDidUnload设置了以下设置:
- (void)viewDidLoad
{
[super viewDidLoad];
//do stuff...
}
- (void)viewDidUnload
{
[super viewDidUnload];
//do stuff...
}
然而,我想知道......当你调用viewDidLoad和viewDidUnload时有关系吗?我应该在“做东西”之前或之后吗?
换句话说,每个人应该在方法的开头还是结尾?
编辑:为了使事情更复杂,这是Apple的默认viewDidUnload方法,“似乎”建议首先调用[super viewDidUnload]
......
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
答案 0 :(得分:4)
我最后在析构函数中调用super
,然后在构造函数中调用。 viewDidUnload
是析构函数,所以我会把它称为最后一个。但在这种情况下,这是品味问题。
另外,请注意 - 自iOS 6以来不推荐使用viewDidUnload
。
答案 1 :(得分:2)
假设您有2个班级,父母和孩子。子继承自Parent。他们有一个名为greet的方法,它返回一个字符串。
这是父方法的样子:
代码:
-(NSString *)greet {
return @"Hello";
}
我们希望孩子向父母学习。所以我们用super来说问妈妈会怎么问候,但也有我们自己的小补充。
代码://从父级继承
-(NSString *)greet {
NSString *parentGreeting = [super greet];
return [parentGreeting stringByAppendingString:@", Mommy"]
}
所以现在父母问候"你好",孩子问候"你好,妈咪"。稍后,如果我们改变父母的问候语只返回"嗨",那么这两个课程都会受到影响,你将会有#34;嗨"和"嗨,妈妈"。
super用于调用超类定义的方法。它用于访问已被子类覆盖的方法,以便类可以将其自己的代码包装在其父类实现的方法周围。如果你正在做任何类型的继承,这非常方便。