gpt4 book ai didi

objective-c - 返回前释放局部变量?

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

在 objective-c 中,我知道你需要释放你初始化/保留/复制的任何东西。我需要在 return 语句之前这样做吗?我想了解显式调用 release 而不是使用 autorelease

-(void) someMethod
{
AnotherClass* ac = [[AnotherClass alloc] init];
if([ac somethingHappens]){
// Do I need to release ac here?
return;
}
[ac doSomethingElse];
[ac release];
}

谢谢!

最佳答案

是的,您需要释放您的变量,但是您退出该方法。

这非常简单:当您初始化某些内容时,保留计数会增加。当你释放它时,它会减少。当它达到零时,它会自动解除分配(释放)。

在上面的代码中,您初始化了变量,但如果它遵循返回路径,则变量保留计数永远不会变为零,因此永远不会被释放。

关于objective-c - 返回前释放局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284036/

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