【发布时间】:2019-09-01 18:51:54
【问题描述】:
我想初始化 UIView 子类的 Presenter 属性,我在我的 init 方法中执行此操作,但在所需的 init 中出现错误“Property 'self.presenter' not initialized at super.init call”?(编码器)方法。
我不知道如何初始化它,因为我无法向所需的 init?(coder) 方法添加参数。
class HorizontalBarChart: UIView {
private var presenter: HorizontalBarChartPresenter
init(barHeight: CGFloat, spaceBetweenBars: CGFloat) {
self.presenter = HorizontalBarChartPresenter(barHeight: barHeight, spaceBetweenBars: spaceBetweenBars)
super.init(frame: CGRect.zero)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
【问题讨论】:
-
有很多解决方案取决于您是否真的会从情节提要中初始化。
-
我设法通过删除“super.init(coder)”以编程方式创建它,并将其替换为 fatalError("NSCoding not supported") 但起初我想直接在我的故事板中创建我的视图但我做不到……
标签: swift uiview initialization subclass