Пользовательская ячейка табличного представления в виде строки - PullRequest
0 голосов
/ 30 октября 2018

Я обновляю свое приложение с Swift 2 до Swift 4, и, похоже, что некоторые функции теряются, когда дело доходит до преобразования UITableViewCell в строку через:

String(MyTableViewCell)

Пример, в котором я пытаюсь его использовать:

let cell = tableView.dequeueReusableCell(withIdentifier:String(PlayerReportCell), forIndexPath: indexPath) as! PlayerReportCell

Это просто утраченная функциональность или есть новый способ сделать это?

Я получаю ошибку ..

Cannot invoke initializer for type 'String' with an argument list of type '((PlayerReportCell).Type)'

1 Ответ

0 голосов
/ 30 октября 2018

Я не помню, чтобы я мог это сделать раньше, но в Swift 4.2 вы можете сделать:

 "\(PlayerReportCell.self)"

В основном он использует интерполяцию строк для интерполяции объекта типа мета типа.

Или используйте String(describing:)

String(describing: PlayerReportCell.self)

Обратите внимание, что это зависит от деталей реализации и может сломаться в будущей быстрой версии, как это сделал ваш старый код. Идентификатор лучше вводить жестко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...