在下面的示例中:
所以看起来
但是根据UIView文档,只有一个
根据NSObject的文档,
因此必须有一个
import UIKit
class MyView: UIView
{
override init(frame: CGRect) {
super.init(frame: frame)
print ("...init with frame")
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
print("...init with coder")
}
}
.......
let var = MyView() // "...init with frame" gets printed
所以看起来
MyView()
调用了UIView.init()
,而UIView.init()
又调用了init(frame: CGRect)
。但是根据UIView文档,只有一个
init(frame:)
(和init:coder
)。根据NSObject的文档,
init()
不进行任何初始化操作,只是返回self。因此必须有一个
UIView.init()
覆盖了NSObject.init()
,然后调用了init(frame:)
。但是这个UIView.init()
没有被记录在文档中?还是我错过了这篇文档?
MyView(frame: CGRectZero)
,调用树就会更短。 - vacawama