私は目的の c を初めて使用し、autorelease がいつどのように呼び出されるかを理解しようとしています。次の単純な使用例を理解しています。
- (void) foo {
Bar *b = [[[Bar alloc] init] autorelease];
[self doSomething:b];
}
この次のケースはどうですか? オブジェクトは makeBar のスコープを離れるとすぐに解放されるため、これはバグですか?
-(Bar*) makeBar
{
return [[[Bar alloc] init] autorelease];
}
発信者が保持を行う場合はどうなりますか?
Bar *b = [[self makeBar] retain];
ありがとう、-エリック