Search code examples
iosswiftswift3xcode8-beta6

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


Solution

  • 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
        }
    }