【问题标题】:"Method does not override any method from its superclass" Swift 3 [duplicate]“方法不会覆盖其超类中的任何方法”Swift 3 [重复]
【发布时间】:2016-10-11 18:25:46
【问题描述】:

这段代码是swift 2

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let playerViewController = segue.destination as! PlayerViewController
    playerViewController.videoID = channelsDataArray[selectedVideoIndex]["videoID"] as! String   
}

错误 “方法不会覆盖其超类中的任何方法”

请解决 swift 3

【问题讨论】:

  • 这个方法里面是什么类?不是UIViewController吗?
  • 您是否打算覆盖超类中的方法?你的超类是什么?有没有类似的方法?

标签: ios swift swift3


【解决方案1】:

在 Swift 3 及更高版本中,为prepare(for:sender:),第二个参数为Any

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let destination = segue.destination as? PlayerViewController {
        destination.videoID = channelsDataArray[selectedVideoIndex]["videoID"] as! String
    }
}

以后,如果您暂时注释掉您的方法并开始输入prepare,代码完成将向您显示正确的方法签名。

【讨论】:

  • Swift 4 也是如此
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多