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

Kev*_*Mac 8 ios swift swift3 xcode8-beta6

我将我的代码从swift 2.2转换为swift 3.0,我得到的方法不会覆盖其超类错误中的任何方法.这是我的代码:

override class func layerClass() -> AnyClass {
        return CAShapeLayer.self
    }
Run Code Online (Sandbox Code Playgroud)

删除覆盖会导致以下错误:使用Objective-C选择器'layerClass'的方法'layerClass()'与来自超类'UIView'的'layerClass'的getter冲突,具有相同的Objective-C选择器

Cod*_*odo 10

layerClass现在是一个吸气剂,不再是一种方法(从Swift 3或iOS 10开始).所以你必须覆盖getter:

override public class var layerClass: Swift.AnyClass {
    get {
        return CAShapeLayer.self
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 你可以省略显式的`get {`btw (3认同)