从初始化程序返回之前不会调用Super.init

Tom*_*hka 14 error-handling uitableview ios xcode7 swift2

我尝试给我的UITableViewCell类一个自定义的启动器,但我无法弄清楚我做错了什么.

这是我的代码:

init(dataObject: [NSManagedObject]!, objectAttributeValues: [String]!,placeholder: String!, segmentedControl: UISegmentedControl?, cellHeight: CGRect, cellWidth: CGRect) {
    self.dataObject = dataObject
    self.Placeholder.text = placeholder
    self.objectAttributeValues = objectAttributeValues

    if segmentedControl != nil {
        self.segmentedControl = segmentedControl!
        didHaveSegmentedControl = true
    }

}

required init(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}
Run Code Online (Sandbox Code Playgroud)

我试着调用super.init(frame:CGRect(...))但是通过实现这个我得到另一个错误:必须调用超类"UITableViewCell"的指定初始化器

我能做什么?非常感谢!

vrw*_*wim 14

初始化程序的工作方式是,它们将自己的属性,常量和函数添加到该实例,然后回调超类以获取其类型的对象.更多信息在这里.

因此,您必须在退出初始化程序之前调用超类的初始化程序.在这里,我建议你打电话给super.init()你的初始化的最后一行.您可以选择最合适的init方法UITableViewCell.

  • 如果我调用'super.init()'错误"_Must调用超类的指定初始化程序"UITableViewCell"_"将出现... (15认同)