Я хочу создать универсальный класс источника данных, поэтому я хочу, чтобы универсальный объект соответствовал UITableViewCell и протоколу ViewModel одновременно.
protocol ViewModel class {
associatedtype T
var viewModel: T { get set }
}
class TableViewDatasourceStandard<G: UITableViewCell>: NSObject, UITableViewDataSource where G: ViewModel {
let reUseIdentifier: String
init( reUseIdentifier: String, cell: G) {
self.reUseIdentifier = reUseIdentifier
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
5
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let row = indexPath.row
let cell = tableView.dequeueReusableCell(withIdentifier: reUseIdentifier, for: indexPath) as! G
cell.viewModel
return cell
}
}
Я получаю ошибку:
У значения типа 'G' нет члена 'viewModel'
Я пробовал разные вещи, но не могу заставить его работать.Спасибо!