为什么/何时必须调用super.ViewDidLoad?
每个人都告诉我“使用super.viewDidLoad()因为它就是这样”或“我一直那样做,所以要保留它”,“如果不叫super就是错误的”等。
override func viewDidLoad() { super.viewDidLoad()
// other stuff goes here
}
我只发现了一些有关Objective-C用例的主题,这些主题并没有那么启发性,但是我正在Swift
3中进行开发,所以有什么专家可以给我一个很好的详细解释吗?
这是一种良好实践的案例还是有任何隐藏的影响?
回答:
通常,最好为您覆盖的所有没有返回值的函数调用super。
您不知道的实现viewDidLoad
。UIViewController可能在那里做了一些重要的设置工作,不调用它就不会给它运行自己的viewDidLoad
代码的机会。
从UIViewController子类继承时,也会发生同样的事情。
即使打电话super.viewDidLoad
没有做任何事情,也要经常打电话来养成良好的习惯。如果您习惯于不调用它,则可能会在需要时忘记调用它。例如,当从第3方框架或您自己的代码库继承依赖于它的ViewController的子类时。
举这个人为的例子:
class PrintingViewController: UIViewController { override func viewDidLoad() {
super.viewDidLoad()
print("view has loaded")
}
}
class UserViewController: PrintingViewController {
override func viewDidLoad() {
super.viewDidLoad()
// do view setup here
}
}
在这里不调用viewDidLoad永远不会给PrintingViewController
它运行自己的viewDidLoad
代码的机会
如果您不想做任何事情,viewDidLoad
那就不要实施它。无论如何都将调用super方法。
以上是 为什么/何时必须调用super.ViewDidLoad? 的全部内容, 来源链接: utcz.com/qa/405671.html