我一直认为调用[super viewWillAppear:animated]
是强制性的。但是今天我从Apple的示例应用程序CoreDataBooks
和viewWillAppear:
实现了a piece of code来看到{{3}}:
- (void)viewWillAppear
{
[self.tableView reloadData];
}
注意没有超级电话。这让我很困惑。如果连Apple的代码都没有包含对[super viewWillAppear:]
的调用,那么也许我可以省略它?或者也许有关于这个问题的某些规则?任何人都可以解释一下吗?
答案 0 :(得分:14)
即使不调用super
实施有时也无害,但无论Apple发布的不良示例如何,您都应始终调用[super viewWillAppear:]
。不这样做可能会导致非常讨厌的问题。
如果您覆盖此方法,则必须在您的实施中的某个时刻调用super。
您提到的具体示例以更微妙的方式被破坏:它们实现了viewWillAppear
而不是viewWillAppear:
,因此这段代码甚至没有被执行!
答案 1 :(得分:5)
简而言之:永远。
如果不这样做会导致难以追踪的问题