2017-02-09 1 views
4

У меня есть Swift класс, который простирается от UITableViewController. Он имеет эту функциюНевозможно вызвать значение нефункционального типа: UITableView

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {...} 

Там это нужно, что мне нужно, чтобы вызвать эту функцию программно в одном месте, и когда я пишу

self.tableView(tableView, cellForRowAt: 1) 
  • я получаю, Невозможно вызвать значение типа без функции "UITableView!

Как я могу назвать эту функцию программно?

ответ

5

Вам не нужно (вы не должны) напрямую обращаться к этому методу delegate/datasource. UITableView имеет FUNC для этого:

tableView.cellForRow(at: indexPath) 

Просто создать путь индекса на основе вашей строки, как:

let indexPath = IndexPath(row: 1, section: 0) 
1

cellForRowAt принимает IndexPath, не является Int:

func someFunc(indexPath: IndexPath) { 
    let cell = tableView(tableView, cellForRowAt: indexPath) 
    print(cell) 
} 
+0

Согласованное, это недоразумение в вопросе. – prabodhprakash