gpt4 book ai didi

ios - 从 Swift 中的超父类(super class)调用初始值设定项?

转载 作者:行者123 更新时间:2023-11-28 13:13:43 25 4
gpt4 key购买 nike

我有一个 UITableViewController 的子类:

class ClassA : UITableViewController {

// MARK: Init
convenience init() {
self.init(style: .Grouped)
}

convenience init(form: FormDescriptor) {
self.init()
self.form = form
}

override init(style: UITableViewStyle) {
super.init(style: style)
}

override init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
baseInit()
}

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
baseInit()
}
}

我做了一个 ClassA 的子类:

class ClassB : ClassA {

override init(style: UITableViewStyle) {
super.init(style: style)
}

convenience init() {
self.init(style: .Grouped)
self.form = getForm()
}

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

我尝试使用 UITableViewController 的初始化程序初始化 ClassB,它使用 UITableViewStyle。运行代码时,我得到:

fatal error: use of unimplemented initializer init(nibName:bundle:)

如何使用 UITableViewControllerstyle 属性初始化 ClassB

最佳答案

将该代码放入您的ClassB:

override init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}

然后你就可以初始化 ClassB 如下:

let b = ClassB(style: UITableViewStyle.Grouped)

关于ios - 从 Swift 中的超父类(super class)调用初始值设定项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175259/

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