斯威夫特,两个问题.1)弱变量2)@IBOutlet的bang运算符

shl*_*821 20 operators iboutlet automatic-ref-counting swift

每:

@IBOutlet weak var nameLabel: UILabel!
Run Code Online (Sandbox Code Playgroud)
  1. 每当我声明我的IBOutlets时,我只使用var而不是weak var.但我最近遇到了一些使用弱var的代码模板.他们为什么这样做?还有什么好处?

  2. 为什么在UILabel结束时会有一个爆炸操作员.我知道这是必需的,我和它一起去,但现在就问它.

提前致谢.

Jér*_*ucq 22

  1. 默认情况下,Swift IBOutlet很弱(但默认情况下其他属性很强).所以写作都是一样的.

您有关于强和弱之间的区别更多的细节在这里

  1. 根据苹果文档

当您在Swift中声明一个插座时,您应该将插座的类型设置为隐式展开的可选(!).这样,您可以让故事板在初始化后在运行时连接出口.


gre*_*heo 10

由于视图元素由视图拥有(强烈),因此出口很弱.我认为你的视图控制器在技术上也可以有一个强大的参考,但没有必要.

弱变量是可选的,因为它们可以nil.您可以?改为声明您的商店,但这意味着每次都使用强制展开或可选绑定.将它们声明为隐式解包的选项!只是一种方便.