我想创建一个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
}
此错误出现在我定义自定义委托的地方:
协议"GenericTableViewDelegate"只能用作泛型约束,因为它具有 Self 或关联的类型要求
我理解这个问题,但我不知道该怎么办。
谢谢你的帮助。
正如错误所述:
协议"GenericTableViewDelegate">只能用作泛型约束,因为它具有 Self 或关联的类型要求。
因此,让我们改为这样做:
class GenericTableView<Delegate: GenericTableViewDelegate>: UITableView {
weak var customDelegate: Delegate?
}