import UIKit
class CustomView: UIView {
override convenience init(frame: CGRect) {
super.init(frame: frame)
self.myCustomSetup()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.myCustomSetup()
}
func myCustomSetup() {
self.backgroundColor = UIColor.redColor()
}
}
这似乎不起作用,从快速文档我明白应该只有一个指定的初始化程序,所有的便利初始化程序调用。在UIView的情况下,这应该是init(编码器aDecoder:NSCoder)。但是我无法在aDecoder: NSCoder
中创建init(frame: CGRect)
我也无法传递nil,因为它不是可选的。我该怎么办 ?我怎样才能覆盖它们?
答案 0 :(得分:6)
一个类必须至少有一个指定的初始值设定项。它可能不止一个。
要使代码生效,您只需从convenience
中删除关键字init(frame: CGRect)
。