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

kvr*_*a13 1 swift ios9 xcode7 swift2

我试图让我的应用程序只是在纵向模式iam使用navigationcontroller我得到这个错误iam usring 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()
            }
        }
Run Code Online (Sandbox Code Playgroud)

日Thnx

mat*_*att 10

错误信息非常清楚.你不能在声明extension内部,class声明内部struct声明任何内容.它必须在所有内容之外,在包含文件的顶层.它周围一定没有花括号.

你没有显示你声明这个的上下文extension,但显然它周围花括号,或者你不会得到错误!

但无论如何,无论你在哪里声明它们,你的扩展都是非法的:你不能override在扩展中进行扩展.(见我的答案在这里.)