Betrachten Sie den folgenden Codeblockoptional Verkettungs und optional ungeöffneten Optionals
// self is a UIViewController
let f = self.view.window?.rootViewController?.view.frame
Hier f zu verstehen, ist eine optionale Verpackung CGRect. Soweit ich verstehen kann,
- Ansicht ist implizit ungeöffnete Eigenschaft. (D. UIView!).
- Wir greifen auf die Fenster Eigenschaft davon mit optional Auspacken der optionalen Fenstereigenschaft der Ansicht. Wenn es Wert hat, dann Zugriff auf seine rootViewController Eigenschaft sonst nichts tun.
Ebenso können wir optional rootViewController auspacken und auf view Eigenschaft zugreifen.
Endlich bekommen wir frame der Ansicht.
Da jede der Fenster oder RootViewController Null sein kann, ist ein Rahmen Optional.
Ich verstehe es richtig. Auch warum die Ansicht Eigenschaft von UIViewcontroller ist optional?
'view' davon:' rootViewController? .view'? –
@ Mr.Bista Ansicht ist nicht optional. es ist implizit optional ausgepackt. Es kann nicht nil sein, deshalb kannst du es nicht optional verketten. –
Ya, darum habe ich gefragt. –