错误Swift方法不会覆盖它的超类中的任何方法

时间:2015-11-18 18:52:14

标签: ios swift error-handling superclass

override func supportedInterfaceOrientations() -> Int {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
    } else {
        return Int(UIInterfaceOrientationMask.All.rawValue)
    }
}

所以我正在编写一个教程并完成了它,当我更新到xcode 7时,我的所有代码都充满了bug。

在上面的部分中,我得到错误"方法不会覆盖其超类的任何方法"但当我删除覆盖时,我收到此错误:方法' supportedInterfaceOrientations()'使用Objective-C选择器' supportedInterfaceOrientations'与方法冲突“supportedInterfaceOrientations()'来自超类' UIViewController'使用相同的Objective-C选择器

我一直在研究,但我对编程很新,而且我在这里的答案很多,我不能很好地理解我的情况。

谢谢

1 个答案:

答案 0 :(得分:3)

它不再返回Int。新方法签名需要返回UIInterfaceOrientationMask

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    if UIDevice.currentDevice().userInterfaceIdiom == .phone {
        return UIInterfaceOrientationMask.allButUpsideDown
    } else {
        return UIInterfaceOrientationMask.all
    }
}