已知两个对象循环引用的话是无法释放的,那如果出现以下问题该如何解决呢?
刚刚被面试没答上来,现在很好奇这个问题,求解答。
当时我答了“使用代理方式”,但是还被要求答出其他方法。
求解答,多谢。
obj1.p = obj2;
obj2.p = obj1;
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这些知识都是挺基础,加油,多看看基础知识。
weak referenceswift 中闭包还有一个概念
[owned self]弱引用就可以了。
首先,简单合理的解决方案是week,但其实也不是绝对答案
--非week解决方案:
例如,如果
然后逻辑总如果有:
那么可以在user的dealloc方法里这么写
那么其实不用week也是能解决的
--week解决方案:
根据业务逻辑判断obj2和obj1哪个会在代码中先释放,把先释放的p改为week
所以,解决问题的办法挺多~