Swift IBOutlet系列并保留循环安全性

时间:2017-04-13 17:26:20

标签: swift macos retain-cycle iboutletcollection

我一直试图在MacOS项目中使用Swift插座集合一段时间,并且刚刚学会了这一点目前还不可能。我仍然感到困惑,为什么不这样做,但是假设在某些时候对此进行了修改,我还有另一个问题。

据我所知,出口通常应该很弱,除了“根”出口,以防止保留周期:

@IBOutlet weak var someButton: NSButton!

但我发现的集合语法示例不包含弱修饰符,我还没有找到一个地方(1)有意义,(2)没有得到红旗:

@IBOutlet var severalButtons: [NSButton]!

那么,我错过了一些明显的东西吗?我可以确定这样的插座集合不会创建保留周期吗? (假设他们被允许?)

1 个答案:

答案 0 :(得分:1)

IBOutletCollectionIBAction不同,IBOutlet将类名作为参数。作为顶级对象,IBOutletCollection应声明为强。这将更详细地解释here

因此,由于此限制,IBOutletCollection有可能创建保留周期。