我有一个自定义UITableViewCel(没有什么花哨)上的Xcode 6.0完美的作品。 当我尝试和Xcode 6.1编译器来编译它显示了以下错误:Failable初始化在Xcode 6.1
A non-failable initializer cannot chain to failable initializer 'init(style:reuseIdentifier:)' written with 'init?'
这里是小区的代码:
class MainTableViewCell: UITableViewCell {
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.setup()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.setup()
}
func setup() {<...>}
}
作为解决方案的编译器提出Propagate the failure with 'init?'
:
override init?(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.setup()
}
我有点困惑。 是否有可能阐述什么是(non)failable initialiser
,它应该如何使用和overrided?
您problaby讲的Xcode 6.0和6.1的? – 2014-10-17 14:48:16
是的,你说得对,那几乎是一个晚上,我有点昏昏欲睡。 :) – 2014-10-17 15:02:11
另外,据我所知,你应该把super.init调用放在函数的底部。我猜如果你没有任何属性,那么这没关系。 – 2014-10-17 15:37:23