我正在尝试做一个定制的UIPickerView。在我的自定义类中,我必须重写“init(编码器aDecoder: NSCoder)”初始化器。
同时,我想要一个没有任何参数的初始化器。根据错误消息,我的类变量初始化是强制性的,但如果在单独的函数中进行初始化,则不会检测到它们的初始化。
class MyPickerView: UIPickerView{
var maxInt:CInt;
func baseInit(){
maxInt = 10;
}
override init() {
maxInt = 10;
super.init();
}
required init(coder aDecoder: NSCoder) {
maxInt = 10;
super.init(coder: aDecoder)
}
}
在那里,我确实有用于"maxInt“初始化的冗余代码。
如果我在初始化器中替换了maxInt的初始化,我将收到以下错误消息:
属性“self.maxInt”在super.init调用时未初始化
我该怎么办呢。最佳做法应该是什么?
谢谢你的帮助。
发布于 2015-03-23 08:59:32
可以使var可选,也可以在声明时初始化
class MyPickerView: UIPickerView {
var maxInt:CInt = 10 // or var maxInt:CInt?
}
或
class MyPickerView: UIPickerView {
var maxInt:CInt?
func setup() {
maxInt = 10
}
}
https://stackoverflow.com/questions/29215147
复制相似问题