gpt4 book ai didi

iPhone 内存管理 : a release after setting self. someProperty = nil

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

我正在阅读 LazyTableImages code Apple 已经发布并且他们为此做了一些事情(在 NSOperation 子类中):

- (void)dealloc {
[myProperty release];
[myProperty2 release];
}

- (void)main {
//
// Parse operation undertaken here
//
self.myProperty = nil;
self.myProperty2 = nil;
}

我的想法是他们这样做以防 dealloc 在将属性设置为 nil 之前被调用

我的想法对吗? 是否不需要发布,因为 self.myProperty = nil 有效地发布了 myProperty

我在这段代码中注意到的一件事是它们不会释放 dealloc 中的所有保留对象,只有其中一些,这确实是我的原因困惑。

干杯

最佳答案

dealloc 之后,您不能执行 self.myProperty = nil 甚至 [myProperty release]。知道为什么? 因为 self 不存在了。

至于你的问题,看来 dealloc 中的释放是不必要的,但在你的 dealloc 方法中清理你的实例变量仍然是一个好习惯。

编辑

正如 Peter 在评论中指出的那样,如果从未执行过 -main 方法,那么在 -dealloc 中有释放语句是必要的;没有它们,你就会泄漏内存。

关于iPhone 内存管理 : a release after setting self. someProperty = nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636485/

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