Рассмотрит следующему блоку кодаПонимания опциональных цепочек и необязательно распакованный OPTIONALS
// self is a UIViewController
let f = self.view.window?.rootViewController?.view.frame
Здесь п является необязательным обертыванием CGRect. Насколько я могу понять,
- вид неявно развернутый свойство. (Т.е. UIView!).
- Мы обращаемся к окну его свойства с возможностью разворачивания дополнительного свойства окна вида. Если он имеет значение, то доступ к свойству rootViewController ничего не делает.
Аналогичным образом мы по желанию разворачиваем rootViewController и обращаемся к его вид.
И наконец, мы получаем frame.
Поскольку любой из окна или RootViewController может быть нулем, рамка является необязательной.
Правильно ли я это понимаю. Также почему вид объект UIViewcontroller не является обязательным?
'view' из этого:' rootViewController? .view'? –
@ Вид Mr.Bista не является обязательным. он неявно разворачивается необязательно. Это не может быть nil, поэтому вы не можете его опционально цепочки. –
Я, вот почему я спрашивал. –