這裏的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