iOS面试题:循环引用的产生原因,以及解决方法

  • 产生原因:如下图所示,对象A和对象B相互引用了对方作为自己的成员变量,只有自己销毁的时候才能将成员变量的引用计数减1。对象A的销毁依赖于对象B的销毁,同时对象B销毁也依赖与对象A的销毁,从而形成循环引用,此时,即使外界没有任何指针访问它,它也无法释放。
循环引用示例图

多个对象间依然会存在循环引用问题,形成一个环,在编程中,形成的环越大越不容易察觉,如下图所示:

多个对象引用示例图
解决方法:
  • 事先知道存在循环引用的地方,在合理的位置主动断开一个引用,是对象回收;
  • 使用弱引用的方法。

更多:iOS面试题合集

你可能感兴趣的:(iOS面试题:循环引用的产生原因,以及解决方法)