如图所示,对象A和对象B相互引用了对方作为自己的成员变量,只有自己销毁的时候才能将成员变量的引用计数减1。
对象A的销毁依赖于对象B的销毁,同时对象B销毁也依赖与对象A的销毁,
从而形成循环引用,此时,即使外界没有任何指针访问它,它也无法释放。
多个对象间依然会存在循环引用问题,形成一个环,在编程中,形成的环越大越不容易察觉。
解决方法:
事先知道存在循环引用的地方,在合理的位置主动断开一个引用,是对象回收;
使用弱引用的方法。
修改时间:
2016年11月17日10:05:46
如图所示,对象A和对象B相互引用了对方作为自己的成员变量,只有自己销毁的时候才能将成员变量的引用计数减1。
对象A的销毁依赖于对象B的销毁,同时对象B销毁也依赖与对象A的销毁,
从而形成循环引用,此时,即使外界没有任何指针访问它,它也无法释放。
多个对象间依然会存在循环引用问题,形成一个环,在编程中,形成的环越大越不容易察觉。
事先知道存在循环引用的地方,在合理的位置主动断开一个引用,是对象回收;
使用弱引用的方法。
修改时间:
2016年11月17日10:05:46