我正在尝试在swift中实现一个扩展UIControl的自定义类,并且无法完成初始化。
class UIRangeSlider: UIControl {
var minimumValue: Float32
var maximumValue: Float32
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
init(frame: CGRect, minimumValue: Float32, maximumValue: Float32) {
self.minimumValue = minimumValue
self.maximumValue = maximumValue
super.init(frame: frame)
}
}
当我尝试使用:
创建此类的实例时var sliderFrame = CGRect(x: 20, y: 200, width: 200, height: 5)
var slider = UIRangeSlider(frame: sliderFrame, minimumValue: 1, maximumValue: 10)
我收到错误:
Property 'self.minimumValue' not initialised at super.init call
编写此自定义初始化程序的正确方法是什么?
答案 0 :(得分:0)
Swift总是要求任何新的类成员拥有某种默认值,然后才能调用指定的init
。
required init(coder aDecoder: NSCoder) {
self.minimumValue = 0.0 // some default value
self.maximumValue = 0.0 // some default value
super.init(coder: aDecoder)
}