在swift中,为什么UIlabel是可选的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在swift中,为什么UIlabel是可选的?相关的知识,希望对你有一定的参考价值。

看着这个,

    @IBOutlet weak var label1 : UILabel!

为什么UILabel是可选的?我建立了与UILabel的IBOutlet连接的事实意味着UILabel DEFINATELY存在,并且不会是零。那么为什么它是一个可选的UIlabel?而不是UILabel

答案

这是因为必须在构造函数中初始化非可选变量并保留所有生命周期。

IBOutlets也很弱,这意味着它可以变为零,例如查看控制器仍然活着。

另一答案

这是关于视图控制器生命周期实际发挥作用的方式。在继续之前,让我们了解模型,视图和控制器。

在加载视图(即标签)之前,View Controller对象本身会被实例化。在此期间,由于视图甚至没有加载,因此没有对标签的引用,因为它仍然需要从故事板创建。

出于这个原因,对于一个非常短暂的不可思议的时刻,该对象变为零。并且,当加载视图时:ViewControllerviewDidLoad(),然后只将标签引用分配给变量。

这概述了为什么在ios中真正使用选项的简短描述。

以上是关于在swift中,为什么UIlabel是可选的?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 C++ 中覆盖是可选的?

Swift之Optional 可选值

CoreData:Not null 属性应该是可选的吗?

为啥 UITextField.text 是可选的?

关于swift中的可选类型

C main 函数是可选的吗?你可以在它之外编写代码吗?