关于swift中的AppDelegate窗口

时间:2014-10-04 13:14:43

标签: swift appdelegate

这是Appdelecage.swift中的swift默认应用程序代码

class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    ...

有谁能告诉我为什么要创建一个可选的var窗口?

为什么没有这样的默认值:

var window: UIWindow = UIWindow()

这将节省很多"?"和"!"

THX

2 个答案:

答案 0 :(得分:3)

UIApplicationMain的工作是看你的窗口是零并创建并为你分配一个窗口。我认为这是他们的推理。

但实际上,您只需将问号更改为感叹号即可。

如果您要提供一个实际的窗口,那么也可以由您来构建它,就像我在这里一样:

https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch01p006customWindowInStoryboardApp/ch14p366customWindowInStoryboardApp/AppDelegate.swift

答案 1 :(得分:-1)

var window声明是为了满足UIApplicationDelegate协议中指定的可选声明。您不需要声明它,但是如果您这样做,则不应该使用您自己的值来设置它。应用程序将它设置为自己的窗口,你只能读它。你仍然需要提供它作为可选(UIWindow?),因为协议声明它是这样的。

修改 哎呀,我道歉。我被故事板宠坏了,我忘了你实际上可以通过编程方式创建根窗口。