Declaration is only valid at file scope (extension

2020-04-30 03:23发布

i try to make my app just in portrait mode iam using navigationcontroller i get this error iam usring Xcode7 and Swift 2 And Target System IOS 9.3
Declaration is only valid at file scope

        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

1条回答
Rolldiameter
2楼-- · 2020-04-30 04:09

The error message is quite clear. You cannot declare an extension inside of anything - inside a class declaration, inside a struct declaration, etc. It must be outside of everything, at the top level of the containing file. There must be no curly braces around it.

You have not shown the context in which you are declaring this extension, but clearly there are curly braces around it, or you wouldn't be getting the error!

But in any case, no matter where you declare them, your extensions are illegal: you can't do an override in an extension. (See my answer here.)

查看更多
登录 后发表回答