1

在我的大部分代码中,我对 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;
}
4

2 回答 2

4

我确实在destructorssuper中调用last ,在constructors中调用first 。是一种析构函数,所以我会最后调用它。但在这种情况下,这是品味问题。viewDidUnload

此外,请注意 -viewDidUnload自 iOS 6 以来已弃用。

于 2012-10-11T19:48:33.607 回答
2

假设您有 2 个班级,一个父母和一个孩子。子继承自父。他们有一个名为 greet 的方法,它返回一个字符串。

下面是父方法的样子:

代码:

-(NSString *)greet {
     return @"Hello";
 }

我们希望孩子向父母学习。所以我们用 super 来表达妈妈的问候方式,但也有我们自己的小补充。

代码://从父级继承

 -(NSString *)greet {
     NSString *parentGreeting = [super greet];
     return [parentGreeting stringByAppendingString:@", Mommy"]
   } 

所以现在父母打招呼“你好”,孩子打招呼“你好,妈妈”。稍后,如果我们将父母的问候语更改为只返回“Hi”,那么两个类都会受到影响,您将有“Hi”和“Hi, Mommy”。

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

于 2015-03-09T07:18:21.493 回答