gpt4 book ai didi

ios - override init 和 required init 之间的区别? - swift

转载 作者:IT王子 更新时间:2023-10-29 05:29:50 27 4
gpt4 key购买 nike

我有时会看到这样的 View ,其中在两个不同的初始化方法中有相同的 setup() 函数。 init 方法之间的区别是什么?为什么在这两个方法中调用相同的 setup()?

class BigButton: UIButton {

override init(frame: CGRect) {
super.init(frame: frame)
setup()
}

required init?(coder: NSCoder) {
super.init(coder: coder)
setup()
}

fileprivate func setup() {
// set up stuff
}
}

最佳答案

override init(frame: CGRect) 在您以编程方式创建 View (在本例中为按钮)时使用。

required init?(coder: NSCoder) 在从 storyboard/xib 创建 View 时使用。

因为后者是必需的,所以您必须实现它的主体。但是,如果您不打算手动创建按钮,则第一个不是必需的,可以省略

setup 在两者中都被调用,因为无论您选择创建按钮,还是要设置其自定义行为,以便它按您的预期工作

关于ios - override init 和 required init 之间的区别? - swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46926831/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com