示例代碼:釋放返回的對象還是我必須使用自動釋放
- (Foo*)createFoo {
Foo *foo = [[Foo alloc] init];
return foo;
}
- (void)someOtherMethod {
Foo *foo;
foo = [self createFoo]; //retain count 1
[foo release]; //retain count = 0 => object gets released?
//repeat
foo = [self createFoo];
[foo release];
}
Qeustion(可能是愚蠢的一個):我必須在createFoo自動釋放或者我可以釋放someOtherMethod返回的對象?
我想你正在調用[self createFoo]而不是[self Foo],然後可以在其他方法中釋放它。請記住,ARC可以讓你擺脫幾乎所有的問題...... –
@ilMalvagioDottorProsciutto雖然我同意ARC的評論,但我認爲應該如何手動完成它是很好的,除了ARC只是把這些調用無論如何,知道它在做什麼是非常好的。 –
@SimonLee完全是我的想法 – peko