サンプルコードを使用する必要があります:リリースには、オブジェクトを返したり、私はautoreleaseの
- (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 Foo]ではなく[self createFoo]を呼び出しているとします。そうすれば、someOtherMethodでそれを解放することもできます。ちょっと心に留めておいてください。ほとんどすべての問題を取り除くことができます。 –
@ilMalvagioDottorProsciutto私はARCコメントに同意しますが、ARCだけでこれらの呼び出しを行うだけでなく、手動で行うべき方法の知識があるといいと思いますとにかく、それが何をしているかを知ることはとてもいいです。 –
@SimonLeeまさに私の考え – peko