- 元类型/元数据:即描述数据的数据。比如,一个类的元数据,就是描述这个类的一个object,类有自己的属性和方法,类生成很多对象,然后类还有描述这个类本身的一个数据,就是元类型/元数据。
class A {
class func method() {
print("Hello")
}
}
let typeA: A.Type = A.self
typeA.method()
// 或者
let anyClass: AnyClass = A.self
(anyClass as! A.Type).method()
any,anyclass和anyobject,都表示“任意”,其中anyclass被typealias 定义。
通过 AnyObject.Type 这种方式所得到是一个元类型 (Meta)。声明时在类型的名称后面加上 .Type,比如 A.Type 代表的是 A 这个类型的类型。也就是说,我们可以声明一个元类型来存储 A 这个类型本身,而在从 A 中取出其类型时,我们需要使用到 .self:
class A {
}
let typeA: A.Type = A.self