Any AnyObject AnyClass

  1. Any 是 Swift 当中有的关键字,它是代表所有类型,所有你能看见的类型,都可以赋值给一个 Any 类型的变量。

  2. AnyObject 相对与 Any,它的范围被缩小了,它是只能接收所有 Class 类型的实例变量。你要给他一个值类型,比如 Struct,Swift Protocol,Enum,它是会报错的。

  3. AnyClass 苹果的文档定义,public typealias AnyClass = AnyObject.Type,就是 AnyObject 的类型。 比如:

    class Student {}
    let anyCls: AnyClass = type(of:Student())
    // 或者 等价的
    let anyCls: AnyClass = Student.self

根据需求正确的选择我们需要的类型使用,Enjoy!

最后更新于