在这个Swift Xcode 6.0.1的表单元格示例中,.self用作后缀(不记得以前见过self这样使用)和前缀self。(这当然无处不在),试图理解这到底意味着什么。
// Register the UITableViewCell class with the tableView
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: self.cellIdentifier)
self作为前缀的第一个用法是引用包含当前调用的方法的类的实例。在第二种用法中,self指的是一个类型作为值,在这种情况下,UITableViewCell.self
指的是UITableViewCell
类型
self
是一个返回消息接收方的方法。在这种情况下,它返回UITableViewCell
的Class
对象。
我认为这是因为在其他地方,该类型都用于键入一些变量。但是SomeType.self
说使用这种类型作为值。我不认为一个类型可以独立存在,除非你调用.self
。
在操场上试试下面的。
class Foo {}
Foo // ^ Compiler error: expected member name or constructor call after type name
但使用.self
class Foo {}
Foo.self // console reports: (Metatype)