0

一段时间以来,我一直在尝试在 MacOS 项目中使用 Swift 插座集合,并且才刚刚了解到这目前是不可能的。我仍然很困惑为什么不这样做,但假设这在某个时候被修改了,我还有另一个担心。

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

@IBOutlet weak var someButton: NSButton!

但是我为集合语法找到的示例不包含弱修饰符,而且我还没有找到一个地方来放置它(1)是有意义的,并且(2)没有得到一个危险信号:

@IBOutlet var severalButtons: [NSButton]!

那么,我是否遗漏了一些明显的东西?我可以确定这样的出口集合不会创建保留周期吗?(假设他们曾经被允许?)

4

1 回答 1

2

IBOutletCollection与 anIBAction或 an不同, AnIBOutlet将类名作为参数。作为顶级对象,IBOutletCollection应将 an 声明为强对象。此处将对此进行更详细的说明。

因此,由于这个限制,anIBOutletCollection有可能创建一个保留循环。

于 2017-04-13T17:29:46.980 回答