我已经编写代码多年了,我非常习惯在重写方法时总是调用方法的 super 构造函数。但最近我一直想知道它是否总是必要的……我知道当你覆盖一个初始化程序时你应该调用 super.init()
。但是在 Swift 和 iOS 开发中,如果你重写一个 UIViewController
生命周期方法,比如 viewDidLoad()
而忘记调用 super.viewDidLoad()
,编译器不会产生任何警告或错误,并且代码似乎可以正常编译。所以我想知道调用是否以某种方式内置到 SDK 中,甚至是否有必要调用(考虑到我们希望代码尽可能高效和正确)?
最佳答案
我想你可能会看here一个很好的答案。
Apple 不限制您调用 super.viewDidLoad()
,但在调用之前使用某些 View 循环方法和变量是不安全的。例如,如果您想首先初始化自己的变量或属性 - 我认为这不会有问题。
关于ios - 需要在 Swift 中为生命周期方法调用 super 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34015365/