自定义表视图单元格为字符串

时间:2018-10-29 21:41:06

标签: ios swift uitableview

我正在将我的应用程序从Swift 2更新到Swift 4,当通过以下方式将UITableViewCell转换为String时,似乎会丢失一些功能:

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 :(得分:1)

我不记得以前能够做到,但是在Swift 4.2中,您可以做到:

 "\(PlayerReportCell.self)"

基本上是使用字符串插值来插值类型的元类型对象。

或者,使用String(describing:)

String(describing: PlayerReportCell.self)

请注意,这依赖于实现细节,并且可能会在将来的快速版本中中断,就像您的旧代码一样。最好将标识符硬编码在其中。