8

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

Kevin Mac
  • 320
  • 2
  • 10

1 Answers1

10

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
    }
}
Codo
  • 75,595
  • 17
  • 168
  • 206