У меня есть пользовательский UITableViewCel (ничего необычного), который отлично работает на Xcode 6.0. Когда я пытаюсь скомпилировать его с 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
и как его следует использовать и переопределять?