私が知っているように、ガベージ コレクションは Cocoa ではデフォルトで有効になっておらず、ビルド設定で選択する必要があります。しかし、ビルド設定では、自動参照カウントが表示されます。私は何が欠けていますか?
1 に答える
7
Apple はガベージ コレクションを廃止しました。代わりに ARC を使用してください。ARC のドキュメントはここにあります。ARCに関するWWDCの講演はこちら
ARC を使用すると、オブジェクトはガベージ コレクションではなく参照カウントされます。retain
ただし、またはrelease
/を呼び出すことは期待されていませんautorelease
。コンパイラは、代わりにretain
or release
/への呼び出しを挿入します。autorelease
実際には、これはガベージ コレクションと同様に機能します。オブジェクトの参照カウントがゼロになり、オブジェクトの割り当てが解除されるのを防ぐことができる参照循環を避けるように注意する必要があります。これは主に、デリゲートを含むほとんどのインスタンスで発生するように、子がその親への参照を保持している場合に、親子関係によって導入されます。
親子関係の参照の 1 つを弱いものとしてマークすることで、参照の循環を回避できます。弱いとマークされたプロパティは、オブジェクトへの弱い参照を作成します。nil
オブジェクトの参照カウントがゼロになると、オブジェクトへの弱い参照が設定されます。
上で述べた話は、さらに詳細になります。
于 2012-09-09T17:34:01.903 に答える