Google Objective-C Style Guideによると、自動解放してから次のように保持する必要があります。
- (void)setFoo:(GMFoo *)aFoo {
[foo_ autorelease]; // Won't dealloc if |foo_| == |aFoo|
foo_ = [aFoo retain];
}
この場合、foo_ は同じインスタンスに設定されていても解放されず、より防御的なセッターになります。
私の質問は、これが @property と @synthesize の仕組みですか?