gpt4 book ai didi

iphone - 不进行dealloc操作

转载 作者:行者123 更新时间:2023-12-03 20:49:09 25 4
gpt4 key购买 nike

我在 super View 中有这个:

mySubView = [[MySubView alloc] init];
[self addSubview:mySubView];
[mySubView release];

然后在稍后的某个时刻,在 subview 中,这样:

[self removeFromSuperview];

当我调试它时,我注意到 subview 的 dealloc 从未被调用,即使我相当确定引用计数应该为 0。你知道为什么会这样吗?谢谢。

最佳答案

是的,当您发送removeFromSuperview时,随后发送释放消息。并且每次释放调用都会减少保留计数。以防万一:

MySubView * mySubView = [[MySubView alloc] init];
[window addSubview:mySubView];
[mySubView release];
[mySubView removeFromSuperview];

结果将如您所料:removeFromSuperview mySubView 的保留计数变为 0 后,将调用 dealloc。

但是在您的示例中,“然后在稍后的某个时刻”后面有更多代码,并且其他一些对象(它不是 super View )保留了 mySubView。例如,您可以记录保留计数值以查看您的 View 保留/释放的位置。

关于iphone - 不进行dealloc操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2622902/

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