似乎是一个微不足道的问题,但我无法进行此编译。 无论是在游乐场还是在正常的快速ios项目中。 (请注意我没有使用故事板,这就是为什么我不需要/关心init?(编码器)部分...它必须包含它,否则编译器会抱怨它。)
class SegmentedControl: UISegmentedControl {
let configuration: [String]
required init(configuration: [String]) {
self.configuration = configuration
super.init(items: configuration)
}
required init?(coder aDecoder: NSCoder) { fatalError() }
}
let x = SegmentedControl(configuration: ["a","b"])
抱怨没有实施离散初始化程序。
致命错误:使用未实现的初始化程序&#init;(框架:)'上课 ' __ lldb_expr_167.SegmentedControl'
我不明白这里发生了什么。不是UISegmentedControl的指定初始化程序init(items :)吗?我在我的子类中指定了初始化程序。
答案 0 :(得分:0)
解决方案:
class SegmentedControl: UISegmentedControl {
var configuration = [String]()
required init(configuration: [String]) {
super.init(items: configuration)
self.configuration = configuration
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) { fatalError() }
}
let x = SegmentedControl(configuration: ["a","b"])