Предположим, что класс, полученный из UIView
следующим образом:
class MyView: UIView {
var myImageView: UIImageView
init(frame: CGRect) {
super.init(frame: frame)
}
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
...
Если бы я хотел иметь один и тот же код в обоих инициализаторах, например
self.myImageView = UIImageView(frame: CGRectZero)
self.myImageView.contentMode = UIViewContentMode.ScaleAspectFill
и НЕ дублировать этот код дважды в реализации класса, как бы я структурировал методы init
?
Пробовал подходы:
- Созданный метод
func commonInit()
, который вызывается послеsuper.init
→ Swift-компилятора, выдает ошибку о неинициализированной переменнойmyImageView
перед вызовомsuper.init
- Вызов
func commonInit()
доsuper.init
не выполняется, очевидно, с ошибкой компилятора "self", используемой перед вызовом super.init "