安德烈·切尔努卡(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] 删除。
编辑于
我来说两句