Sam*_*urn 5 release objective-c local-variables
在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];
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
是的,您需要释放变量,但是您退出该方法。
这非常简单:当您初始化某些内容时,保留计数就会增加。当你释放它时,它会减少。当它达到零时,它会自动释放(释放)。
在上面的代码中,您初始化了变量,但如果它遵循返回路径,则变量保留计数永远不会为零,因此永远不会被释放。