“方法不会覆盖其超类中的任何方法”Swift 3 [重复]

Posted

技术标签:

【中文标题】“方法不会覆盖其超类中的任何方法”Swift 3 [重复]【英文标题】:"Method does not override any method from its superclass" Swift 3 [duplicate] 【发布时间】: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吗? 您是否打算覆盖超类中的方法?你的超类是什么?有没有类似的方法? 【参考方案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 也是如此

以上是关于“方法不会覆盖其超类中的任何方法”Swift 3 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

覆盖 UICollectionView 的 UIPanGestureRecognizer

从Swift 3.2迁移到Swift 4我使用autosavesInPlace收到错误

从 Swift 3.0 转换为 Swift 2.3

xcode 8.3.3 是不是运行 swift 3.2

swift swift_optional3.swift

swift swift_optional3.swift