我试图给我的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")
}

我尝试调用super.init(frame:CGRect(...)),但是通过实现此方法,我得到了另一个错误:必须调用父类(super class)'UITableViewCell'的指定初始化程序

我能做些什么?
非常感谢!

最佳答案

初始化程序的工作方式是,它们将向该实例添加自己的属性,常量和函数,然后为该类型的对象调用父类(super class)。更多信息here

因此,您必须在退出初始化程序之前调用父类(super class)的初始化程序。在这里,我建议您在初始化程序的最后一行调用super.init()。您可以选择init上的哪种UITableViewCell方法最合适。

关于ios - 从初始化程序返回之前未调用Super.init,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30877156/

10-09 03:49