gpt4 book ai didi

ios - 如果我在结构中分离一个对象,在内存方面会发生什么

转载 作者:行者123 更新时间:2023-11-28 19:52:09 25 4
gpt4 key购买 nike

假设这种情况。我有一个具有这些属性的 Person 类:

  • parent(弱)- 持有对 person 父对象的引用
  • children (strong) - 是那个人的 child 的数组
  • director - bool 值,持有标志以标记此人是否是层次结构中的主管

然后我有一组员工。只有该公司所有分支机构的 CEO 才被添加到该数组中。员工作为 child 添加到具有不同层次结构的各自老板。

视觉上是这样的(在这个例子中你只看到一个 CEO 添加到数组中):

      JACK (CEO)
|
---------------
| |
BOB TOM
|
|
---------
| |
LAURA CARRY
|
TONY

看右边的分支。 Tony 是 Carry 的 child ,Carry 是 Tom 的 child 之一,而 Tom 是 Jack 的 child 。每个人都对自己的 child 有强引用,对 parent 有弱引用。

如果我从 Jack 的子数组中删除 Tom,内存会发生什么变化?整个分支 Tom、Laura、Carry 和 Tony 从内存中释放,或者我必须断开每个元素之间的所有链接,例如,Carry 和 Tony 之间,Tom 和它的 child 之间,等等。

最佳答案

整个分支发布;您无需再做任何工作。

在实践中,发生的事情是当 Tom 从 Jack 的所有权中释放时,它又会释放它持有的所有强引用,这会在引用树中递归发生。

关于ios - 如果我在结构中分离一个对象,在内存方面会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28634725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com