Swift:如何为其委托创建具有通用类型的自定义重写 UITableView?

Swift: How to create a custom overridden UITableView with a generic type for its delegate?

我想创建一个 UITableView,并以此创建一个新的委托。基本上:

class GenericTableView: UITableView {    
    weak var customDelegate: GenericTableViewDelegate?
}

protocol GenericTableViewDelegate : NSObjectProtocol {
    func genericTableView(_ genericTableView: GenericTableView, numberOfRowsInSection section: Int) -> Int
}

但现在我想添加一个关联到此委托的泛型类型:

protocol GenericTableViewDelegate : NSObjectProtocol {
    associatedtype T   
    func cellFor(object: T) -> UITableViewCell    
}

并且这个错误出现在我定义 customDelegate 的地方:

Protocol 'GenericTableViewDelegate' can only be used as a generic constraint because it has Self or associated type requirements

我明白这个问题,但我不知道该怎么做。

感谢您的帮助。

如错误所述:

Protocol 'GenericTableViewDelegate' can only be used as a generic constraint because it has Self or associated type requirements.

所以,让我们改为这样做:

class GenericTableView<Delegate: GenericTableViewDelegate>: UITableView {
    weak var customDelegate: Delegate?
}