gpt4 book ai didi

objective-c - 'autorelease' 的对象什么时候被释放?

转载 作者:太空狗 更新时间:2023-10-30 03:42:36 24 4
gpt4 key购买 nike

我正在为 iPhone、objective-c 开发。当我们使用自动释放时,对象什么时候真正被释放——当主自动释放池被释放时(即应用程序终止?),或者当本地函数结束时?例如,我想做这样的事情:

- (void) test{    MyObj* p = [[[MyObj alloc] init] autorelease];    ...    // is p 'released' here?}

那么'p'是函数一退出就释放了,还是这个线程的自动释放池释放了?我以为是本地函数退出的时候,但我刚刚创建了自己的线程并需要设置一个自动释放池,这让我重新考虑何时会发生这种情况。

谢谢

最佳答案

自动释放对象与自动释放池同时释放。因此,对于您的线程,它将在您释放池时被释放。在主线程中,如果您不创建自己的线程,我相信每次通过运行循环都会耗尽自动释放池——但我已经有一段时间没看过了。

关于objective-c - 'autorelease' 的对象什么时候被释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1146577/

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