8

コードをSwift 2.2からSwift 3.0に変換していますが、メソッドがスーパークラスエラーからメソッドをオーバーライドしていません。これが私のコードです:

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

オーバーライドを削除すると、次のエラーが発生します: Objective-C セレクター 'layerClass' を持つメソッド 'layerClass()' は、同じ Objective-C セレクターを持つスーパークラス 'UIView' からの 'layerClass' のゲッターと競合します

4

1 に答える 1

10

layerClassは getter になり、メソッドではなくなりました (Swift 3 または iOS 10 以降)。したがって、ゲッターをオーバーライドする必要があります。

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