Swift 如何避免嵌套对象的内存泄漏

Swift 如何避免嵌套对象的内存泄漏,swift,memory-leaks,retain-cycle,Swift,Memory Leaks,Retain Cycle,想象一个Swift对象a引用了对象B和C,对象B也引用了C,如下所示: Object A: - Object B - Object C Object B: - Object C 假设所有引用都是强引用,这会导致内存泄漏吗?为了避免泄漏,对象B对对象C的引用是否应该是弱引用 谢谢 在第一个示例中,只要B和C都没有强引用返回到A,就没有强引用循环,因此没有内存问题(至少在这个对象层次结构中)。同样,在第二个例子中,只要C没有强引用返回到B,同样,没有强引用循环 对象层次结构中的一般思想是,父对象

想象一个Swift对象a引用了对象B和C,对象B也引用了C,如下所示:

Object A:
- Object B
- Object C

Object B:
- Object C
假设所有引用都是强引用,这会导致内存泄漏吗?为了避免泄漏,对象B对对象C的引用是否应该是弱引用


谢谢

在第一个示例中,只要B和C都没有强引用返回到A,就没有强引用循环,因此没有内存问题(至少在这个对象层次结构中)。同样,在第二个例子中,只要C没有强引用返回到B,同样,没有强引用循环

对象层次结构中的一般思想是,父对象应该具有对其子对象的强引用,但如果子对象出于任何原因(通常,您甚至不需要)需要任何对其父对象的引用,则子对象对父对象的引用应该是弱引用/无主引用

您只需要确保不存在从子对象到父对象的强引用循环

没有引用/保留周期。。。