我已经尝试过先前问题的所有答案,但是在尝试对UIView进行子类化并添加自己的初始化程序时仍然遇到错误。这是代码:
class ProgressAlertView: UIView {
var title: String
var steps: Int
var messageLabels: [String]
var errorLabel: String
var successLabel: String
public required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
alertLayout()
}
public override init(frame: CGRect) {
super.init(frame: frame)
alertLayout()
}
convenience init(title: String, steps: Int, messageLabels: [String], errorLabel: String, successLabel: String) {
self.init(frame: frame)
self.title = title
self.steps = steps
self.messageLabels = messageLabels
self.errorLabel = errorLabel
self.successLabel = successLabel
}
}
这会在必需方法和替代方法中引发此错误:
未在super.init调用中初始化属性'self.title'
在回答上一个问题时,有人解释说,需要在调用super.init()之前先设置参数。当我尝试这样做时,我收到以下错误消息(位于上面的错误消息之上): 在调用“ self.init”之前在属性访问“标题”中使用“ self”
正确的方法是什么?