iPhone:[超级viewDidUnload]调用顺序

时间:2010-03-02 17:56:23

标签: iphone objective-c

我想知道在重新定位属性之前或之后调用[super viewDidUnload]之间是否有任何区别。

谢谢!

  self.webView = nil;
  self.fullText = nil;
  [super viewDidUnload];

  [super viewDidUnload];
  self.webView = nil;
  self.fullText = nil;

5 个答案:

答案 0 :(得分:12)

这取决于超类在viewDidUnload中的作用。如果它只是一个标准的UIViewController,那么要么会这样做,因为-[UIViewController viewDidUnload]什么都不做。

答案 1 :(得分:10)

我从未想过这很重要,但我们发现了一个错误,应用程序首先崩溃了。我办公室的趋势是将其称为最后一个,但Apple模板将其称为第一。

你可以做你想做的事,但我会从现在开始称它为最后一次。

答案 2 :(得分:6)

这个问题没有得到完全解答。 (当我在这个主题上谷歌时它首次出现,所以一个完整的答案对我和其他人都有用。)

如果超类在viewDidUnload中有什么东西,那么在你的类的viewDidUnload中调用它的正确顺序是什么:在释放属性之前或之后?

为了记录,似乎共识是调用超级方法LAST:

-(void)viewDidUnload {
    self.some_property = nil;
    [super viewDidUnload];
}

答案 3 :(得分:2)

这仅在视图的超类实际上在viewDidLoad中执行某些操作时才有意义。默认UIViewControllerviewDidLoad中没有执行任何操作,因此如果您的视图是标准UIViewController,那么您可以将[super viewDidLoad]放在viewDidLoad方法的任何位置。但是,如果superviewDidLoad中执行某项操作,那么放置[super viewDidLoad]的位置就很重要。

答案 4 :(得分:2)

这就像dealloc方法一样。

- (void)dealloc
{
    [array release];
    [super dealloc];
}

所以我认为最后应该致电[super viewDidUnload]