iPhone:[超级viewDidUnload]调用顺序

ari*_*mus 23 iphone objective-c

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

谢谢!

  self.webView = nil;
  self.fullText = nil;
  [super viewDidUnload];
Run Code Online (Sandbox Code Playgroud)

要么

  [super viewDidUnload];
  self.webView = nil;
  self.fullText = nil;
Run Code Online (Sandbox Code Playgroud)

rpe*_*ich 12

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

  • @delirus:对于"清理"的方法,super的实现通常在之后调用.同样,"初始化"的方法应首先调用super. (5认同)

ZaB*_*anc 10

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

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


Ste*_*ine 6

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

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

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

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