这是Appdelecage.swift中的swift默认应用程序代码
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
...
有谁能告诉我为什么要创建一个可选的var窗口?
为什么没有这样的默认值:
var window: UIWindow = UIWindow()
这将节省很多"?"和"!"
THX
答案 0 :(得分:3)
UIApplicationMain
的工作是看你的窗口是零并创建并为你分配一个窗口。我认为这是他们的推理。
但实际上,您只需将问号更改为感叹号即可。
如果您要提供一个实际的窗口,那么也可以由您来构建它,就像我在这里一样:
答案 1 :(得分:-1)
var window
声明是为了满足UIApplicationDelegate
协议中指定的可选声明。您不需要声明它,但是如果您这样做,则不应该使用您自己的值来设置它。应用程序将它设置为自己的窗口,你只能读它。你仍然需要提供它作为可选(UIWindow?
),因为协议声明它是这样的。
修改强> 哎呀,我道歉。我被故事板宠坏了,我忘了你实际上可以通过编程方式创建根窗口。