Свифт (1.0) наследует меня за рамки веры. Я могу поверить, что нужно спросить что-то такое же простое, как это, но я не могу понять это. У меня есть свой пользовательский вид, который я хочу создать программно с init (frame: CGRect), а также загрузить его из панели рассказов, в этом случае для инициализации следует использовать init (coder aDecoder: NSCoder). в обоих случаях я хочу вызвать свой собственный метод настройки. Например:
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 (coder aDecoder: NSCoder). Однако я не могу создать aDecoder: NSCoder
в init(frame: CGRect)
, я не могу передать nil как необязательный. Что мне делать? Как я могу переопределить их оба?