Вещи в расширении всегда отправляются статически.В set
, cell.setupData(1)
уже связан с реализацией в расширении во время компиляции.
Я не понимаю, зачем вам это расширение в любом случае, вам нужно только:
class cell: UITableViewCell, Action {
func setupData<T>(_ data: T) {
print(#function)
}
}
protocol Action {
func setupData<T>(_ data: T)
init()
}
...
func set<T: Action>(_ t: T.Type) {
let cell = T()
cell.setupData(1)
}