迅速使IBOulet一样强大
在Swift中,IBOutlets默认很弱。 我有一个viewController创build在故事板不在视图层次结构中的对象,所以我需要它在ViewController中是一个强大的参考,我怎样才能改变@IBoutlet属性强。
从Xcode 6 beta 2开始,Swift没有办法指定强大的网点。 解决方法是连接IB中的sockets,然后从源文件中删除@IBOutlet
属性。
更新:这已被添加到Xcode 6testing版3。
连接sockets时,您可以selectstrong
的IBOutlet
:
或者从声明中删除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)