【问题标题】:What is this Override error and how do I fix it? [duplicate]这是什么覆盖错误,我该如何解决? [复制]
【发布时间】:2015-10-31 03:49:44
【问题描述】:

我正在制作一个带有移动角色和旋转武器的 ios 游戏,它可以运行,但是我休息了一个月,然后 ios 更新到了 9。我的代码不再有效并给我一个错误。错误是什么,更重要的是我该如何解决?

 override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
    for touch in (touches as! Set<UITouch>) {
        let location = touch.locationInNode(self)
        if (leftButton.containsPoint(location)){
            leftPressed = true
        }else{
            leftPressed = false
        }
        if (rightButton.containsPoint(location)){
            rightPressed = true
        }else{
            rightPressed = false
        }
    }
}

这是我收到错误的代码 sn-ps 之一。这是错误:方法没有覆盖其超类中的任何方法

【问题讨论】:

    标签: swift


    【解决方案1】:

    可能发生的情况是,在更新到 iOS 9 期间,功能发生了变化,您的实现已过时且不再有效。

    阅读文档here(已经在您正在使用的功能处)。

    您将函数定义为

    touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent)
    

    新的实现是

    touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?)
    

    您的实现采用不同的数据类型作为参数,因此不是同一个函数,这就是您收到覆盖错误的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 2015-06-13
      • 2011-09-04
      • 2013-12-08
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多