与表视图单元格关联类型



我在表格视图单元格(嵌套表格视图)内有表格视图单元格(OrderMasterCell)

OrderMasterCell已在多视图控制器中重用

假设ViewController1具有tableview,并且在tableview单元格(VC1Cell)中有一个具有单元格OrderMasterCell的tableview(嵌套tableivew)

假设 ViewController2 具有 tableview,在 tableview 单元格 (VC2Cell) 中,有一个具有单元格OrderMasterCell的 tableview(嵌套 tableivew)

我想要将OrderMasterCell委托传递给VC1CelldidSelectRow的自定义委托

。 或VC2Cell

使用该委托,我想将单元格 VC1 或 VC2 作为参数传递 为此,我创建了以下

@objc protocol  OrderSubItemTableDelegate:class {
associatedtype cellType // cell type either vc1 or vc2
@objc optional func tableViewDidSelectRowAt(object:cellType)
}

当我尝试创建时

class VC1Cell: UITableViewCell,UITableViewDataSource,UITableViewDelegate {
weak var delegate:OrderSubItemTableDelegate?
}

它抛出编译时错误

协议"OrderSubItemTableDelegate"只能用作泛型约束,因为它具有 Self 或关联的类型要求

明确的问题

如何创建具有associatedtype的协议的属性? 喜欢weak var delegate:OrderSubItemTableDelegate?

如果有人可以帮助我解决这个问题

您以错误的方式确认协议。

protocol  OrderSubItemTableDelegate {
associatedtype cellType // cell type either vc1 or vc2
static func tableViewDidSelectRowAt(object: cellType)
}
class VCCell1: UITableViewCell ,OrderSubItemTableDelegate {
typealias cellType = VCCell1
static func tableViewDidSelectRowAt(object: VCCell1) {
}
}

最新更新