方法不会覆盖其超类 swift 3.0 错误中的任何方法 [重复]
Posted
技术标签:
【中文标题】方法不会覆盖其超类 swift 3.0 错误中的任何方法 [重复]【英文标题】:Method does not override any method from its superclass swift 3.0 error [duplicate] 【发布时间】:2016-08-23 13:29:35 【问题描述】:我正在将我的代码从 swift 2.2 转换为 swift 3.0,并且我得到 Method does not override any method from its superclass 错误。 这是我的代码:
override class func layerClass() -> AnyClass
return CAShapeLayer.self
删除覆盖会导致以下错误: 带有 Objective-C 选择器“layerClass”的方法“layerClass()”与具有相同 Objective-C 选择器的超类“UIView”中的“layerClass”的 getter 冲突
【问题讨论】:
【参考方案1】:layerClass
现在是一个 getter 而不再是一个方法(从 Swift 3 或 ios 10 开始)。所以你必须重写getter:
override public class var layerClass: Swift.AnyClass
get
return CAShapeLayer.self
【讨论】:
你可以省略显式的get
btw
感谢@Codo 它有效。
... 现在我了解了为什么存在 override
关键字。如果它不存在,则永远不会发生此错误,并且 OP 将继续假设他的方法正在覆盖超类中的某些内容。整洁!以上是关于方法不会覆盖其超类 swift 3.0 错误中的任何方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
supportedInterfaceOrientations 方法不会覆盖其超类中的任何方法
覆盖 UICollectionView 的 UIPanGestureRecognizer