根据Google Objective-C Style Guide,我们应该这样自动释放然后保留:
- (void)setFoo:(GMFoo *)aFoo {
[foo_ autorelease]; // Won't dealloc if |foo_| == |aFoo|
foo_ = [aFoo retain];
}
在这种情况下,如果将 foo_ 设置为同一个实例,则不会释放它,从而形成更具防御性的 setter。
我的问题是,@property 和 @synthesize 是这样工作的吗?