0
?所以我用它在子類方便初始化,但失敗我知道必須調用超類的指定初始值設定項,我認爲<code>init(type: UIButtonType)</code>已經調用了指定的初始值設定項,爲什麼我不能在易理解初始值設定項中使用「self.init(type:.custom)」,我的子類是UIButton
class TSContourButton: UIButton {
enum ContourButtonSizeType {
case large
case small
}
convenience init(type:ContourButtonSizeType) {
self.init(type: .custom)
}
然後,我試了這個。它編譯好。但是,它看起來不專業
class TSClass: UIButton {
convenience init(frame: CGRect, myString: String) {
self.init(frame: frame)
self.init(type: .custom)
}
所以,我懷疑我可能會認爲錯了。所以,我做了一些測試。它成功地稱爲super convenience initializer
。爲什麼我不能在方便初始值設定項中使用self.init(type: .custom)
在我的子類UIButton
?
class person: UIButton {
var name: String = "test"
override init(frame: CGRect) {
super.init(frame: .zero)
self.name = "one"
}
convenience init(myName: String) {
self.init(frame: .zero)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
class man: person {
convenience init(mySex: Int) { // it successfully call superclass convenience initializer
self.init(myName: "info")
}
'所以我用它在子類方便初始化,但失敗' - 你得到什麼錯誤? – BaSha