我到底应该什么时候打电话给[super viewWillAppear:],什么时候不打电话?

安德烈·切尔努卡(Andrey Chernukha)

我一直认为打电话[super viewWillAppear:animated]是强制性的。但是今天,我遇到来自苹果示例应用程序的一段代码该代码是CoreDataBooks此处viewWillAppear:实现的:

- (void)viewWillAppear
{
   [self.tableView reloadData];
}

注意没有调用super。这让我很困惑。如果甚至Apple的代码中都不包含to的调用,[super viewWillAppear:]那么也许我总是可以忽略它吗?也许对此事有某些规定?有人可以解释吗?

加布里埃·彼得罗内拉(Gabriele Petronella)

即使super有时不调用实现可能无害,您也应该始终调用[super viewWillAppear:],而不管Apple发布的不良示例如何。不这样做可能会导致非常令人讨厌的问题以至于无法找到。

根据文档

如果重写此方法,则必须在实现中的某个时刻调用super。

您提到的特定示例以更微妙的方式被破坏了:它们实现了viewWillAppear而不是viewWillAppear:,因此甚至没有执行代码!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章