这里的AppDelegate窗口迅速默认的应用程序代码中Appdelecage.swift关于在迅速
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
...
谁能告诉我,为什么创建一个可选的VAR窗口?
为什么没有像这样为默认:“”
var window: UIWindow = UIWindow()
将被节省大量的和“!”
THX
这里的AppDelegate窗口迅速默认的应用程序代码中Appdelecage.swift关于在迅速
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
...
谁能告诉我,为什么创建一个可选的VAR窗口?
为什么没有像这样为默认:“”
var window: UIWindow = UIWindow()
将被节省大量的和“!”
THX
UIApplicationMain
的工作是看到你的窗口是零,并创建并为你指定一个窗口。我认为这是他们的推理。
但实际上,您可以将问号更改为感叹号。
如果你要提供一个实际的窗口,也将是由你来镜框,因为我在这里做的:
var window
的声明是为了满足在UIApplicationDelegate
协议指定一个可选的声明。你不需要申报,但如果你这样做,
你不应该用你自己的价值来设置它。应用程序将它设置到它自己的窗口,你只应该阅读它。
您仍然需要将其作为可选(UIWindow?
)提供,因为协议声明为这样。
编辑: 哎呀,我很抱歉。我被故事板宠坏了,我忘了你实际上可以通过编程创建根窗口。
这就是我自Swift发病以来一直在治疗它的原因(我将它翻转为感叹号)。如果某事发生了'application(didFinishLaunchingWithOptions:)'被调用的地方,并且窗口无法以编程方式创建,那么可能会发生一些相当可怕的事情。 – 2014-12-11 14:37:03