Swift 中的 AnyClass 与集合类型详解
1. AnyClass 类型
AnyClass 是 AnyObject 的类型,它对应于 Objective - C 的 Class 类型。通常在 Cocoa API 声明中,当需要指定一个类时会用到它。
例如,UIView 的 layerClass 类属性在 Swift 中的声明如下:
class var layerClass : AnyClass {get}
这意味着,如果要重写这个类属性,需要实现一个 getter 方法来返回一个类,通常是 CALayer 的子类。以下是一个示例:
override class var layerClass : AnyClass {
return CATiledLayer.self
}
对 AnyClass 对象的引用与对 AnyObject 对象的引用行为相似。可以向它发送 Swift 已知的任何 Objective - C 消息,即任何 Objective - C 类消息。示例代码如下:
class Dog {
@objc static var whatADogSays : String = "woof"
}
class Cat {}
let c : AnyClass = Cat.self
let s = c.whatADogSays
通过对
超级会员免费看
订阅专栏 解锁全文
9

被折叠的 条评论
为什么被折叠?



