我正在从一个非控制器类中呈现一个控制器,所以我抓住了根视图,并得到了“未解包”的常见错误,所以我放入了?并且要试着或强行打开,仍然说窗口没有被打开,所以它通过插入另一个来自动修复它。
UIApplication.sharedApplication().delegate?.window!!.rootViewController!.presentViewController(blah blah blah... { () -> Void in
});
标题说明了一切。我唯一的猜测是窗口基本上是一个计算属性,给出一个可选的,你必须打开它吗?!? (语法不是拼写错误,只是确保我没有错误地结束句子)
答案 0 :(得分:1)
您需要两个!
,因为该类型是嵌套的可选项(UIWindow??
)。
像这样:
let nested: Int?? = 3
// the safe way
if let innerValue = nested {
// innerValue is of type Int?
if let unwrapped = innerValue {
// unwrapped is of type Int
}
}