你如何覆盖迅速的layerClass
在Objective-C中,我们使用这样做
+ (Class)layerClass { return [CAEAGLLayer class]; }
显然这是行不通的:
CAEAGLLayer.class()
因为class
是Swift中的一个关键字。 你如何在Swift中做到这一点?
改编自Apple的ListerKit示例代码:
override class func layerClass() -> AnyClass { return CAEAGLLayer.self }
Swift 3的更新:
override class var layerClass: AnyClass { get { return CAGradientLayer.self } }
在iOS 10中,这是一个计算属性而不是方法:
override class var layerClass: AnyClass { get { return CAEAGLLayer.self } }
Swift与Objective-C有很大的不同。 你可能想看看有关Metatypes的文档。
对于你的情况,我会尝试: CAEAGLLayer.self