ための保持、我々は次にように保持する自動解放すべきである:自動解放次いで<a href="http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml?showone=Autorelease_Then_Retain#Autorelease_Then_Retain" rel="nofollow">Google Objective-C Style Guide</a>によればセッター
- (void)setFoo:(GMFoo *)aFoo {
[foo_ autorelease]; // Won't dealloc if |foo_| == |aFoo|
foo_ = [aFoo retain];
}
この場合、foo_より防御のために作る、同じインスタンスに設定されている場合割り当て解除されることはありませんセッター。
私の質問は、どのような@property & @合成作業ですか?
これが当てはまる場合、Googleの推奨はあまり最適ではありませんか? – Jaryl
はい。より魅力的に見えますが、最適ではありません。 – mackross
[foo_ autorelease]を使用しないと、オブジェクトが非構造で、別のスレッドからアクセスされている場合、競合条件が発生する可能性があります。 [foo_ autorelease]を使うことで、私たちは通常、安心して小さなパフォーマンスヒットを支払うだけです!したがって、Googleの推奨。 – pchap10k