我正在按照本教程http://www.raywenderlich.com/62435/make-swipeable-table-view-cell-actions-without-going-nuts-scroll-views创建自定义表格单元格。但我使用swift而不是客观c。
这是我在swift中的表格单元格视图。
protocol SwipeableCellDelegate {
func buttonOneActionForItemText(itemText: NSString)
func buttonTwoActionForItemText(itemText: NSString)
}
class MyTableViewCell: UITableViewCell {
@IBOutlet weak var button1: UIButton!
@IBOutlet weak var button2: UIButton!
@IBOutlet weak var mytextLabel: UILabel!
@IBOutlet weak var testLabel: UILabel!
var delegate: SwipeableCellDelegate
init(delegate: SwipeableCellDelegate) {
self.delegate = delegate
super.init()
}
required init(coder aDecoder: NSCoder) {
// fatalError("init(coder:) has not been implemented")
super.init(coder : aDecoder)
}
}
但它没有编译,我得到错误说:
MyTableViewCell.swift:38:9:属性'self.delegate'未在super.init调用中初始化
如果我摆脱“init(编码器aDecoder:NSCoder)”,我会收到错误说法 'required'initializer'init(coder :)'必须由UITableViewCell的子类提供。
我已经读过这个帖子了 Class does not implement its superclass's required members
关于在我所需的init(coder aDecoder:NSCoder)中做什么。
但我无法获得编译代码。
如果有人可以帮助我,我感激不尽。
谢谢。
答案 0 :(得分:2)
它说您需要在所有init方法的末尾定义委托,因为该类变量未设置为可选。一种方法是使其成为可选的(意味着它可以是零)
var delegate: SwipeableCellDelegate?
了解初始化和可选属性类型here