在 Swift 中,、 和 是自动引用计数(ARC)管理内存的三种主要方式。理解它们的区别以及底层的实现机制(特别是 Side Table 的概念)是掌握 Swift 内存管理的关键。 以下是详细的深度解析: --- 1. Strong 引用 (强引用) 概念 这是 Swift 的默认引用类型。只要有一个强引用指向一个对象,该对象就不会被销毁。 具体实现 引用计数 (Reference Counting): Swift 的对象在堆(Heap)上的内存布局通常以 结构开始,其中包含 (元数据指针)和 (引用计数)。 当创建一个强引用时,运行时会调用 ,将该对象的 中的强引用计数 +1。 当强引用离开作用域或被置为 时,调用 ,计数 -1。 当强引用计数降为 0 时,对象会被销毁(调用 )。 区别与问题 默认行为: 不需要特殊关键字。 循环引用 (Retain Cycle): 如果对象 A 强引用 B,B 也强引用 A,两者的计数永远不会归零,导致内存泄漏。 --- 2. Weak 引用 (弱引用) 概念 弱引用不会增加对象的“强引用计数”。如果一个对象只剩下弱引用,它会被销毁,并且...