8

我正在将我的代码从 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选择器的超类'UIView'中'layerClass'的getter冲突

4

1 回答 1

10

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

override public class var layerClass: Swift.AnyClass {
    get {
        return CAShapeLayer.self
    }
}
于 2016-08-23T13:32:16.250 回答