Поскольку вы упомянули, что у вас есть UITableView внутри другой ячейки UITableView, я предполагаю, что выход внутреннего tableView принадлежит ячейке внешнего tableView.Следовательно, я считаю, что вы не сможете выполнить прямую проверку эквивалентности.
Могут быть разные подходы для решения этой проблемы.
Одним из быстрых подходов было бы создать 2 подкласса UITableView и использовать по одному для каждого типа tableView (например, OuterTableView и InnerTableView ; или создатьдаже 1 подкласс будет служить цели).
Пример кода:
class OuterTableView: UITableView {
}
class InnerTableView: UITableView {
}
class YourViewController: UIViewController, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView is OuterTableView {
// Return the corresponding row count.
return 2
} else if tableView is InnerTableView {
// Return the corresponding row count.
return 1
} else {
return 0
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//
// You may use only one sub-class also for the identification
//
if tableView is OuterTableView {
return UITableViewCell()
} else {
return UITableViewCell()
}
}
}
Примечание: Не забудьте назначить соответствующие классы вашим элементам UITableViewв Интерфейсном конструкторе.