Ответ 1
Просто добавьте объявление об использовании протокола UITableViewDataSource в определение класса следующим образом:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {}
Я обновил свой код до версии 3.0 и получил предупреждение в следующей строке:
func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {
Когда я пробую каждое из предложений либо отключить предупреждение с помощью @nonobjc, либо сделать его частной функцией, таблица больше не загружается.
Ошибка:
Метод экземпляра 'tableView (: cellForRowAtIndexPath:)' почти соответствует необязательному требованию 'tableView (: canFocusRowAt:)' протокола 'UITableViewDelegate'
Кто-нибудь знает, что вызывает эту ошибку и как ее исправить?
Большое спасибо!
Просто добавьте объявление об использовании протокола UITableViewDataSource в определение класса следующим образом:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {}
В swift 3.0 подпись для источника данных изменилась на:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
Обратите внимание на разницу между cellForRowAtIndexPath indexPath: IndexPath
и cellForRowAt indexPath: IndexPath
Я использую новый метод без каких-либо предупреждений, надеюсь, что это решит вашу проблему.
Приветствия.
У меня была аналогичная проблема, и я обнаружил, что если вы удалите пробел между подчеркиванием перед tableView, из этого
func tableView(_ tableView: ...
к этому
func tableView(_tableView: ...
странно предупреждение уходит...