之前有人问过这个问题,但没有一个连贯的简单答案。
通常你会这样做:
override init (frame : CGRect)
{
super.init(frame : frame)
我需要做(我不能,因为没有这样的功能可以覆盖(:
override init (frame : CGRect, number:Int)
{
super.init(frame : frame)
这显然给出了一些错误。有没有办法像往常一样创建实例并仍然传递参数?
要满足所有规则和要求,您必须编写
class MyView : UIView {
var number : Int
override convenience init(frame: CGRect)
{
self.init(frame:frame, number: 0)
}
init(frame: CGRect, number: Int)
{
self.number = number
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
number = 0
super.init(coder : aDecoder)
}
}
以通常/指定的方式初始化视图并在额外的行中设置属性可能更容易。
您指定的那个没有覆盖方法,只需这样编写即可
init(frame : CGRect, number: Int) {
super.init(frame : frame)
}