前端之家收集整理的这篇文章主要介绍了
ios – 覆盖init和必需init之间的区别? – 迅速,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有时会看到这样的视图,在两个不同的init
方法中有相同的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).
从storyboard / xib创建视图时使用必需的init?(编码器:NSCoder).
因为后者是必需的,你必须实现它的身体.但是,如果您不打算手动创建按钮,则不需要第一个按钮,可以省略
在两者中都调用了setup,因为无论您选择创建按钮,都要设置其自定义行为,以便按预期工作
原文链接:https://www.f2er.com/iOS/334656.html