swift2 声明仅在文件范围(扩展名)内有效

1wnzp6jl  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(138)

我试图使我的应用程序只是在纵向模式我使用navigationcontroller我得到这个错误我使用Xcode7Swift 2和目标系统IOS 9.3
声明仅在文件范围内有效

extension UINavigationController {
            public override func supportedInterfaceOrientations() -> Int {
                return visibleViewController.supportedInterfaceOrientations()
            }
            public override func shouldAutorotate() -> Bool {
                return visibleViewController.shouldAutorotate()
            }
        }

        extension UITabBarController {
            public override func supportedInterfaceOrientations() -> Int {
                if let selected = selectedViewController {
                    return selected.supportedInterfaceOrientations()
                }
                return super.supportedInterfaceOrientations()
            }
            public override func shouldAutorotate() -> Bool {
                if let selected = selectedViewController {
                    return selected.shouldAutorotate()
                }
                return super.shouldAutorotate()
            }
        }

Thnx公司

vcudknz3

vcudknz31#

错误信息很清楚。你不能在任何东西里面声明extension--在class声明里面,在struct声明里面,等等。它必须在所有东西的外面,在包含文件的顶层。它不能有花括号。
您没有显示声明此extension的上下文,但很明显,它周围有 * 和 * 大括号,否则您不会得到错误!
但在任何情况下,无论您在何处声明它们,* 您的 * 扩展都是非法的:您不能在扩展中执行override。(请参阅我的答案here。)

相关问题