gpt4 book ai didi

ios - 不能继承 UIButton : Must call a designated initializer of the superclass 'UIButton'

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

尝试对 UIButton 进行子类化,但出现错误 Must call a designated initializer of the superclass 'UIButton'

研究几个 SO 帖子 like this , this , this ,或其他几个人没有帮助,因为这些解决方案不起作用。

我们如何在 Swift 中继承 UIButton 并定义自定义初始化函数?

import UIKit

class KeyboardButton : UIButton {
var letter = ""
var viewController:CustomViewController?

required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

init(letter: String, viewController: CustomViewController) {
super.init()
...
}
}

最佳答案

您必须调用父类(super class)的指定初始化程序:

swift 3 和 4:

init(letter: String, viewController: CustomViewController) {
super.init(frame: .zero)
}

swift 1 和 2:

init(letter: String, viewController: CustomViewController) {
super.init(frame: CGRectZero)
}

作为Paulw11在评论中说, View 通常不应引用其 Controller ,除非是使用委托(delegate)模式的弱引用,这将提高可重用性。

关于ios - 不能继承 UIButton : Must call a designated initializer of the superclass 'UIButton' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32343198/

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