gpt4 book ai didi

ios - 使用泛型设置 cellDelegate

转载 作者:行者123 更新时间:2023-11-28 12:29:39 26 4
gpt4 key购买 nike

大家好,你们好吗?希望你们一切都好。

我需要一点帮助,在此先感谢您。

我的自定义单元格中有一个自定义委托(delegate),如下所示:

protocol customTableViewCellDelegate: NSObjectProtocol {
func buttonPressed(customCell: customTableViewCell)
}

我有一个扩展,可以在表格 View 中设置单元格,如下所示:

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?”

我不知道如何正确使用泛型,也不知道如何修复这个错误。

希望大家帮帮我。感谢您花时间阅读本文,祝您有美好的一天。

最佳答案

您正在尝试将 View Controller 的类分配给委托(delegate)属性,而不是 View Controller 实例。你想要的是:

cell.delegate = viewController

不过我不明白你为什么要使用泛型。你可以只使用协议(protocol):

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
}
}

关于ios - 使用泛型设置 cellDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42388548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com