7

Objective C 2.0 IOS 5 SDKのガベージコレクタと新しい自動参照カウンタの違いは誰にも分かりますか?Objective C 2.0ガベージコレクタVS IOS 5 SDKの自動参照カウンタ

はIOS 5 SDKでもObjective C 2.0を使用していますか?

注:私は客観的C 2.0何を意味するか - 誰もがObjective Cの2.0ガベージコレクタと新しい自動リファレンスの間で異なっているものを知っている場合疑問に、私は、このリンクから見た http://theocacao.com/document.page/510

おかげ

+4

AppleのObjective-Cガベージコレクタは、iOSでは使用できません。 Mac OS X専用です。 –

+0

[Objective-Cの自動参照カウントとガベージコレクションの違いは何ですか?](http://stackoverflow.com/questions/7874342/what-is-the-difference-between-objective-c-automatic-リファレンスカウントアンドガール) –

答えて

13

をIOS 5 SDKのカウンタ?

ARCはガベージコレクタではありません。コンパイラによって追加される手動参照カウント(retain/release/autorelease)呼び出しと考える方がよいでしょう。また、ランタイムトリックを使用します。

AppleシステムのObjCを初めてお使いの方:AppleのObjective-Cタイプはすべて参照カウントを使用していますが、現在は複数のバージョンがあります。 ARC前とGC前には、手動参照カウント(MRC)を使用しました。 MRCを使用すると、オブジェクトを明示的に保持および解放することができます。 MRCは、特にメモリを明示的に管理する時間をほとんど費やさなかった人にとっては困難でした。したがって、シンプルなシステムの需要は時間とともに増加しました。 MRCプログラムでは、大量のメモリ管理コードを書く必要があり、面倒な作業になる可能性があります。

詳細については、Bradの優れた回答hereを参照してください。

は、Objective C 2.0を使用していますか?

はい、しかしにObjCのガベージコレクタはなく、iOSのオプションはなかったです。

8

注意:ガベージコレクションはiOSでは利用できませんが、私のコメントによれば、ARCはMac OSX 10.6以降で利用できます。違いはまだ比較可能です。

自動参照カウントでは、オブジェクトは範囲外になるとすぐに割り当てが解除されます。

ガベージコレクションでは、ガベージコレクタが次の掃引を行い、参照を持たないオブジェクトを見つけるまで、オブジェクトはメモリ内に残る可能性があります。

+0

ARCはMac OS Xで利用できます。私が間違っていない場合は、10.6以降です。 – BoltClock

関連する問題