Objective-C

メモリ管理

初期のObjective-CプログラムはC同様単純な割当と解放を行なっていたが、現在はライブラリレベルで参照カウントを行なうのが一般的。OPENSTEPライブラリはイベントサイクル単位でAutorelease poolと呼ばれる暗黙の参照元を持っており、オブジェクトをここに登録することで事実上の自動解放オブジェクトを実現している。今後はガベージコレクションに徐々に移行すると見られている。ただし両方式は一長一短があるという見方が支配的で、今後も併用される可能性が高い。GNU版ランタイムは独自にBoehm GCを使ったGCモードをすでに実現している。Apple版はMac OS X 10.5でGCを導入した。iPhoneのCocoa touchではリソース制限が厳しいことからGCは使われず、Autorelease方式を採用している。

戻る