方法未覆盖其超类中的任何方法 swift 3.0 错误

Method does not override any method from its superclass swift 3.0 error

我正在将我的代码从 swift 2.2 转换为 swift 3.0,我得到了 Method does not override any method from its superclass 错误。 这是我的代码:

override class func layerClass() -> AnyClass {
        return CAShapeLayer.self
    }

删除覆盖会导致以下错误: 带有 Objective-C 选择器 'layerClass' 的方法 'layerClass()' 与具有相同 Objective-C 选择器 [=12] 的超类 'UIView' 的 'layerClass' 的 getter 冲突=]

layerClass 现在是一个 getter 而不再是一个方法(从 Swift 3 或 iOS 10 开始)。所以你必须覆盖 getter:

override public class var layerClass: Swift.AnyClass {
    get {
        return CAShapeLayer.self
    }
}