【发布时间】:2020-09-02 18:32:37
【问题描述】:
在 Swift 中,闭包是引用类型。这意味着(我认为,如果我错了,请纠正我)他们的生命周期由保留计数管理。我可以使用CFGetRetainCount 获取对象的保留计数,但这不适用于闭包,因为它们不符合AnyObject(或任何与此相关的协议)。
在有人介入并告诉我通过尝试手动获取任何内容的保留计数而告诉我做错事之前,我知道。这纯粹是为了向我自己证明,这就是运行时管理 Closure 生命周期的方式。
【问题讨论】:
-
您可以尝试在 Xcode 中使用 Memory Debug Graph,它可以直观地解释任何对象在任何时间点的保留计数
-
提供了 swift 编译器和运行时的源代码。我建议阅读那个。或将其修改为 print() 一些诊断信息。
标签: swift closures automatic-ref-counting retaincount