Swift 1.1的新错误

时间:2014-11-07 13:52:20

标签: ios xcode swift

我刚刚升级到Xcode 6.1和最新版本的Swift。我以前的工作代码:

let window :UIWindow = UIApplication.sharedApplication().keyWindow

现在在Xcode中收到错误消息:

Value of optional type 'UIWindow?' not unwrapped; did you mean to use '!' or '?'?

Xcode建议将代码更改为以下内容,但现在在使用时调用代码时会出现崩溃。

let window :UIWindow = UIApplication.sharedApplication().keyWindow!

解决

这对我有用:

var window :UIWindow? = UIApplication.sharedApplication().keyWindow
if (window != nil) {
    self.center = window!.center
}
window?.addSubview(self)

1 个答案:

答案 0 :(得分:2)

将变量的类型更改为可选,以匹配keyWindow属性的类型:

let window :UIWindow? = UIApplication.sharedApplication().keyWindow

你得到了崩溃,因为你告诉Swift 解开这个变量,我知道它不是零。除此之外,它没有。

另一种方法是使用条件展开:

if let window :UIWindow = UIApplication.sharedApplication().keyWindow {
    // Access "window" here.
}