しかし、Objective-Cがコンピューターで使用されている場合、ガベージコレクションがあるというのは本当ではありませんか?
ガベージコレクションは、まず、ObjCに関する限り、2007年にOS X 10.5と同時に導入された新しい機能です。次に、フレームワーク機能です。つまり、Cocoaの一部です。言語自体の一部。それはまだOSXで利用可能ですが、私が知る限り、Appleはそれをもう使用するつもりはありません。ARCは、システムが提供する新しいメモリ管理パラダイムです。
iOSにはガベージコレクションがないため、Objective-Cでの手動管理は、iPhoneとiPadで最近使用されるまで必要ないというのは本当ではありませんか?過去、おそらく90年代に、Objective-Cにガベージコレクションがない場合、または常にガベージコレクションがある場合はどうでしょうか。ただし、iPhoneが発売されてから、
いいえ、NeXTの時代から、Cocoaのガベージコレクションが導入されるまで、デスクトップでは常に手動のメモリ管理が必要でした(C ++またはCの場合と同様)。GCを利用できるようにした後でも、パフォーマンスの懸念や古いOSバージョンで実行する必要があるため、多くの人がMRRを使い続けることを好みました。
次に、retain
とrelease
が言語に追加されましたか?
特定のメソッドretain
とrelease
、およびそれらが有効にする参照カウントシステムも、言語ではなくフレームワークの一部ですが、CocoaはObjC(GNUStepなどの他のObjCフレームワークはCocoaを模倣)を使用する卓越したフレームワークであるため、これは、ObjCを作成するときにメモリ管理が実行される主な方法です。(もちろん、CocoaはNeXTからretain
/システムを継承しました。)release
独自のメモリ管理メソッド/システムを使用して別のルートクラスを作成することは完全に可能です。ただし、そうしてCocoaと対話しようとすると、少しおかしくなり、ARCでコンパイルすることはできません。