大家好,你好吗?希望你们好。
我需要一点帮助,我提前感谢你。
我的自定义单元格中有一个自定义委托,如下所示:
protocol customTableViewCellDelegate: NSObjectProtocol {
func buttonPressed(customCell: customTableViewCell)
}
我有一个扩展来在表格视图中设置单元格,如下所示:
extension UITableView {
func layoutTemplateCell<T: UIViewController>(indexPath: IndexPath, viewController: T.Type) -> UITableViewCell {
let cell = UITableViewCell()
switch template {
case customCell:
let cell = self.dequeueReusableCell(withIdentifier: customTableViewCell.identifier) as! customTableViewCell
cell.delegate = viewController.self
return cell
default:
break
}
return cell
}
}
但我在cell.delegate中收到错误“无法指定类型T.type的值来键入customTableViewCellDelegate?”
我不知道如何正确使用通用,我不知道如何修复此错误。
我希望你们能帮助我。感谢您抽出时间阅读本文并度过美好的一天。
答案 0 :(得分:2)
您正在尝试将视图控制器的类分配给delegate属性,而不是视图控制器实例。你想要的是:
cell.delegate = viewController
我不明白你为什么要使用泛型。你可以使用协议:
protocol CustomTableViewCellDelegate: NSObjectProtocol {
func buttonPressed(customCell: UITableViewCell)
}
extension UITableView {
func layoutTemplateCell(indexPath: IndexPath, viewController: CustomTableViewCellDelegate) -> UITableViewCell {
let cell = UITableViewCell()
switch template {
case customCell:
let cell = self.dequeueReusableCell(withIdentifier: customTableViewCell.identifier) as! CustomTableViewCell
cell.delegate = viewController
return cell
default:
break
}
return cell
}
}