【发布时间】:2019-10-14 07:30:42
【问题描述】:
我想知道为什么像 UILable 的类型这样的 IBoutlets 被声明为:
@IBoutlet weak var theNameOfThelable: UILabel!
而不是:
@IBoutlet weak var theNameOfThelable = UILabel()
如果我成功了会发生什么:
@IBoutlet weak var theNameOfThelable = UILabel()
【问题讨论】:
-
UILable() 您正在为 IBOUtlet 分配默认标签对象。这将无效并在连接到情节提要时分配另一个参考。
-
当它像这样
@IBoutlet weak var theNameOfThelable: UILabel!时,这意味着这个变量是UILabel类型的,它肯定需要在那里(故事板会为你创建它,事实上,它会是当然,如果你正确连接了 IBOutlet),但第二个变体:@IBoutlet weak var theNameOfThelable = UILabel(),实际上是一个新 UILabel 的实例化,它将不再指向你在情节提要中设置的 UILabel。 -
我的问题是我如何能够使用它并访问 UILabel 的属性,当它没有被声明为 = UIlabel()
-
它被标记为 UILabel!。它只是隐式展开的可选。为什么你不能访问它的属性?