Просмотр таблицы CellForRowAtIndexPath

Я обновил свой код до версии 3.0 и получил предупреждение в следующей строке:

func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {

Когда я пробую каждое из предложений либо отключить предупреждение с помощью @nonobjc, либо сделать его частной функцией, таблица больше не загружается.

Ошибка:

Метод экземпляра 'tableView (: cellForRowAtIndexPath:)' почти соответствует необязательному требованию 'tableView (: canFocusRowAt:)' протокола 'UITableViewDelegate'

Кто-нибудь знает, что вызывает эту ошибку и как ее исправить?

Большое спасибо!

Ответ 1

Просто добавьте объявление об использовании протокола UITableViewDataSource в определение класса следующим образом:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {}

Ответ 2

В swift 3.0 подпись для источника данных изменилась на:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

Обратите внимание на разницу между cellForRowAtIndexPath indexPath: IndexPath и cellForRowAt indexPath: IndexPath

Я использую новый метод без каких-либо предупреждений, надеюсь, что это решит вашу проблему.

Приветствия.

Ответ 3

У меня была аналогичная проблема, и я обнаружил, что если вы удалите пробел между подчеркиванием перед tableView, из этого

func tableView(_ tableView: ...

к этому

func tableView(_tableView: ...

странно предупреждение уходит...