Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 类型';窗口';具有不同于协议要求的可选性';UIApplicationLegate';在XCode更新到6.3之后_Swift - Fatal编程技术网

Swift 类型';窗口';具有不同于协议要求的可选性';UIApplicationLegate';在XCode更新到6.3之后

Swift 类型';窗口';具有不同于协议要求的可选性';UIApplicationLegate';在XCode更新到6.3之后,swift,Swift,我的AppDelegate中有这个代码var window=UIWindow()。我的应用程序以前工作正常。在我将XCode更新到6.3之后,我无法再在模拟器中运行我的iOS应用程序,因为我收到了错误 “窗口”的类型具有不同于协议要求的可选性 “UIApplicationLegate” 如果在代码的类定义中单击单词uiapplicationelegate,将打开协议定义。我怀疑您正在使用此电话: func application(application: UIApplication, sup

我的AppDelegate中有这个代码
var window=UIWindow()
。我的应用程序以前工作正常。在我将XCode更新到6.3之后,我无法再在模拟器中运行我的iOS应用程序,因为我收到了错误

“窗口”的类型具有不同于协议要求的可选性 “UIApplicationLegate”


如果在代码的类定义中单击单词
uiapplicationelegate
,将打开协议定义。我怀疑您正在使用此电话:

  func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) {...}
在Swift 1.2中,这一点可能有所改变,但似乎没有得到广泛的记录。如果你改写

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow) {...}
然后您将得到您报告的错误消息

丹尼尔·纳吉(Daniel Nagy)提到的自动化程序并没有解决这个问题——我遇到了类似的问题


如果您提供了该可选函数,那么只需在函数定义中的
ui窗口
后添加一个

感谢您的所有贡献。我不太清楚为什么突然我的代码
窗口
声明不再工作。为了解决这个问题,我使用了下面的答案:

我将窗口的去极化恢复为默认值:
var窗口:UIWindow?

然后将下面的代码用于
didfishlaunchingwithoptions

    window = UIWindow(frame: UIScreen.mainScreen().bounds)
    if let window = window {
        window.backgroundColor = UIColor.whiteColor()
        window.rootViewController = ViewController()
        window.makeKeyAndVisible()
    }

在Swift 2中,AppDelegate具有:

var window: UIWindow?
而不是

var window: UIWindow
因为它应该是零

您可以使用惰性变量简单地生成代码

lazy var window: UIWindow? = {
    let win = UIWindow(frame: UIScreen.mainScreen().bounds)
    win.backgroundColor = UIColor.whiteColor()
    win.rootViewController = UINavigationController(rootViewController: self.authViewController)
    return win
}()

因为现在是:var window:UIWindow?但是你应该通过编辑->转换->转换为最新的Swift语法来避免这些类型的错误。你键入的代码是我在Swift中创建应用程序时的默认代码。我改为上面的代码,因为我遇到了一个错误
致命错误:在展开可选值时意外发现了nil
并使用了
窗口!(例如window!.frame=..
您在哪里使用了该代码,该window!.frame..在AppDelegate中?我在
func应用程序中使用了该代码(应用程序:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?)->Bool