我正在尝试在Swift中向UIView
添加扩展方法,如下所示:
extension UIView {
convenience init(superview: UIView) {
self.init(frame: CGRect())
superview.addSubview(self)
}
}
稍后,我可以使用这个新的初始化程序,但仅限于UIView ,我无法弄清楚如何在我自己的子类上使用它。
var poView : UIView = UIView(superview: someSuperview) // Just dandy
var myViewSubclass : MyViewSubclass(superview: someSuperview) // No good.
现在,我的视图子类同时实现init(frame: CGRect)
和init(coder: NSCoder)
,目前没有其他任何内容。
为什么我不能使用我的便利初始化程序?
答案 0 :(得分:2)
为了自动继承添加的便利初始化工具,您的MyViewSubclass
也必须覆盖从init()
继承的普通NSObject
。
class MyViewSubclass {
override init() {
super.init()
}
...
}