gpt4 book ai didi

ios - 了解可选链接和可选解包选项

转载 作者:行者123 更新时间:2023-11-30 12:49:50 26 4
gpt4 key购买 nike

考虑以下代码块

// self is a UIViewController
let f = self.view.window?.rootViewController?.view.frame

这里 f 是一个可选的包装 CGRect。据我所知,

  • view 是隐式解包的属性。(即 UIView!)。
  • 我们可以通过选择性地展开 View 的可选 window 属性来访问它的 window 属性。如果它有值(value),则访问其 rootViewController 属性,否则不执行任何操作。
  • 同样,我们可以选择解包 rootViewController 并访问其 view 属性。

  • 最后我们得到了 View 的框架

由于windowrootViewController中的任何一个都可以为零,因此frame是可选的。

我理解正确吗?另外为什么UIViewcontrollerview属性是可选的?

最佳答案

是的,您的理解是正确的。

“Specifically, the result of an optional chaining call is of the same type as the expected return value, but wrapped in an optional. A property that normally returns an Int will return an Int? when accessed through optional chaining.”

摘自:Apple Inc.“Swift 编程语言 (Swift 3.0.1)”。 iBooks。

UIViewController 实现其 View 的延迟加载。 loadView方法负责加载 View 层次结构(从 NIB 或 Storyboard 场景)或通过代码创建它。因此,在初始化和首次引用 view 属性之间,view 将为 nil

关于ios - 了解可选链接和可选解包选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41137176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com