我的AppDelegate中有这段代码var window = UIWindow()
。我的应用程序之前工作正常。在我将XCode更新为6.3后,我无法再在模拟器中运行我的iOS应用程序,因为我收到错误
'窗口的类型'具有与协议所要求的不同的可选性 ' uiapplicationdelegate'
答案 0 :(得分:1)
感谢您的所有贡献。我不确定我的代码window
声明突然不再起作用的原因。为了解决这个问题,我使用了这里的答案:https://stackoverflow.com/a/25482567/2445717
我将窗口的声明恢复为默认值:var window: UIWindow?
然后使用下面的代码didFinishLaunchingWithOptions
window = UIWindow(frame: UIScreen.mainScreen().bounds)
if let window = window {
window.backgroundColor = UIColor.whiteColor()
window.rootViewController = ViewController()
window.makeKeyAndVisible()
}
答案 1 :(得分:0)
在Swift 2中,AppDelegate有:
var window: UIWindow?
而不是
var window: UIWindow
因为它应该是零
您可以使用lazy var简单地生成代码
lazy var window: UIWindow? = {
let win = UIWindow(frame: UIScreen.mainScreen().bounds)
win.backgroundColor = UIColor.whiteColor()
win.rootViewController = UINavigationController(rootViewController: self.authViewController)
return win
}()