在swift中键入String()和String.self有什么区别?

Luc*_*cas -1 uitableview swift

我有点卡住试图.self在swift中理解,总是我在collectionView或tableView中注册一个自定义单元格我必须注册,customCollectionViewCell.self但为什么不是例如customCollectionViewCell()

我已经在操场上尝试输入String.selfvar以查看发生了什么并且它没有给我任何错误但是当我尝试给它一个值时它会给我以下错误

无法为类型指定"String"类型的值 String.Type

这是什么意思?

Dáv*_*tor 5

Type()是简写符号Type.init(),所以String()调用String.init()并因此初始化a String.

另一方面,String.self返回元类型String,它是表示String类型本身的类型,而不是该类型的任何实例.有关元类型的更多信息,请参阅官方Swift语言参考的元类型类型部分.

在您的特定示例中,您需要注册UITableViewCell子类型而不是特定类型的实例,因此您需要使用YourCellType.self.