Kevin Mac Kevin Mac - 3 months ago 470
iOS Question

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

I am converting my code from swift 2.2 to swift 3.0 and i got Method does not override any method from its superclass error.
Here is my code:

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


Removing override leads to following error:
Method 'layerClass()' with Objective-C selector 'layerClass' conflicts with getter for 'layerClass' from superclass 'UIView' with the same Objective-C selector

Answer

layerClass is now a getter and no longer a method (as of Swift 3 or iOS 10). So you have to override the getter:

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