我刚刚升级到 Xcode 6.1 和最新版本的 Swift。我以前的工作代码:
let window :UIWindow = UIApplication.sharedApplication().keyWindow
现在在 Xcode 中收到一条错误消息:
可选类型“UIWindow?”的值?未展开;你是不是想用'!'或者 '?'?
Xcode 建议将代码更改为以下内容,但我现在在使用时调用代码时发生崩溃。
让窗口:UIWindow = UIApplication.sharedApplication().keyWindow!
已解决
这对我有用:
var window :UIWindow? = UIApplication.sharedApplication().keyWindow
if (window != nil) {
self.center = window!.center
}
window?.addSubview(self)
最佳答案
将变量的类型更改为可选,以匹配 keyWindow
属性的类型:
let window :UIWindow? = UIApplication.sharedApplication().keyWindow
当你告诉 Swift 展开这个变量时,你会崩溃,我知道它不是 nil。除了,在那个时候,它是 nil。
另一种方法是使用条件展开:
if let window :UIWindow = UIApplication.sharedApplication().keyWindow {
// Access "window" here.
}
关于ios - Swift 1.1 的新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26802805/