サンプルコード:
- (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];
}
質問:createFooで自動解放する必要がありますか、それともsomeOtherMethodで返されたオブジェクトを解放できますか?