迅速使IBOulet一样强大

在Swift中,IBOutlets默认很弱。 我有一个viewController创build在故事板不在视图层次结构中的对象,所以我需要它在ViewController中是一个强大的参考,我怎样才能改变@IBoutlet属性强。

从Xcode 6 beta 2开始,Swift没有办法指定强大的网点。 解决方法是连接IB中的sockets,然后从源文件中删除@IBOutlet属性。

更新:这已被添加到Xcode 6testing版3。

连接sockets时,您可以selectstrongIBOutlet在这里输入图像说明

或者从声明中删除weak关键字:

 @IBOutlet var label: UILabel! 

strong关键字再次消失,在Xcode 6.1.1中引发了语法错误。 现在看来,网点现在已经很强大了,而之前的情况正好相反。 所以只需定义没有附加声明的出口。

 @IBOutlet var nameOfOutlet: type = Whatever(); 

它现在是一个选项,当从一个下拉菜单创buildsockets。

这就是为什么我们可能希望从WWDC 2015 Session 407开始让他们变得强大

http://asciiwwdc.com/2015/sessions/407

我想指出的最后一个选项是存储types,它可以是强大的,也可以是弱的。

一般来说,你应该让你的sockets强大,特别是如果你连接一个sockets到一个子视图或一个约束,并不总是会被视图层次保留。

唯一一次你真的需要做一个sockets弱,如果你有一个自定义的视图引用备份的视图层次结构,一般不build议。

所以我要select强大的,我会点击连接,这将产生我的sockets。

从Xcode 6 beta 3开始,Swift现在允许将@IBOutlets标记为strong

从发行说明 :

•@IBOutlets可能被明确标记为强壮,以覆盖它们隐含的弱行为。 (16954464)