1

オブジェクトの初期化で NSArray を作成した場合。

その後、新しい NSArray を同じプロパティに再作成したいのですが、最初に古いものを nil に設定する必要がありますか?

すなわち

このまま行っていいですか…

self.arrayProperty = [[NSArray alloc] init];

それとも私がするべきですか...

self.arrayProperty = nil;
self.arrayProperty = [[NSArray alloc] init];

(この例のために配列を使用しているだけですが、これはプロパティに関する一般的な質問です)。

違いがあれば、それは強力なプロパティです。

4

2 に答える 2

2

nil最初のアプローチは問題ありません。セッターは新しいオブジェクトを保持して割り当てる前にプロパティのバッキング オブジェクトを解放するため、新しいオブジェクトを割り当てる前に明示的に設定する必要はありません。MRC の下で行うことと同じです (ただし、ここではオブジェクトを自動解放しません)。

于 2013-02-02T21:35:53.943 に答える
2

ARC の場合、オブジェクトへの参照がなくなるとオブジェクトが消滅するのと同じです。唯一の違いは、2 番目のコードでは無駄な余分な操作を行っていることです。

于 2013-02-02T22:22:02.550 に答える