Я пытаюсь создать UITableView многократного использования. Я передам дженерики для элемента и UITableViewCell. Однако при попытке преобразовать ячейку в C возникает ошибка, и я не знаю, как еще это исправить.
Член «reusableLoadMoreTableView» нельзя использовать в значение типа
'any SharedLoadMoreTableViewDelegate'; рассмотрите возможность использования общего
вместо ограничения
protocol SharedLoadMoreTableViewDelegate
{
associatedtype T
associatedtype C: UITableViewCell
func reusableLoadMoreTableView(configure cell: C, for item: T)
}
class ReusableLoadMoreTableView: UIView, UITableViewDelegate, UITableViewDataSource
{
private let tableView = UITableView()
private var items: [T] = []
var delegate: (any SharedLoadMoreTableViewDelegate)?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier:"CustomTableViewCell", for: indexPath) as! C
if indexPath.row < items.count
{
delegate?.reusableLoadMoreTableView(configure: cell, for: items[indexPath.row])
}
return cell
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... leviewcell