ios - Swift 1.1 的新错误

标签 ios xcode swift

我刚刚升级到 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/

相关文章:

ios - PNG图片是否需要文档类型?

ios - 捏合缩放 UIImage

ios - 在 table 上显示离用户最近的位置列表

xcode - iAd 横幅实现

iphone - 我的 debian 服务器需要 ssl 证书才能与 APNS 通信吗?

swift - 如何在 Swift 4 中将 NSmutableURLRequest 转换为 URLRequest?

ios - 在 iOS 上自动获取用户所在国家/地区的最准确方法?

ios - 使用全局托管对象上下文来支持并发

ios - Button.center 不适用于 Swift 3/4 中的所有屏幕

ios - 如何在 Swift 的 UITableView 底部显示 "pull-to-refresh"元素