タグ

Objective-Cとメモリ管理に関するkodamのブックマーク (2)

  • Objective-C メモリ管理 確保と解放 | Apple | M3 creator

    Objective-C におけるメモリ管理。 // メモリ確保 id obj = [NSObject alloc]; // メモリ解放 [obj release]; release は必ずメモリを解放するものではない。 参照カウンタをデクリメントし、参照カウンタが「0」になったとき初めてメモリを解放する。 参照カウンタ retainCount id obj = [NSObject alloc]; NSLog( @"1:alloc -> %d", [obj retainCount] ); [obj retain]; NSLog( @"2:retain -> %d", [obj retainCount] ); [obj retain]; NSLog( @"3:retain -> %d", [obj retainCount] ); [obj release]; NSLog( @"4:relea

  • Objective-Cのメモリ管理 | Netsphere Laboratories

    (2009.1.28 新規作成) Objective-C は、ガベージコレクションがない時代のプログラミング言語です。プログラマがきちんとオブジェクトを解放するように書かなければなりません。 実装として、id 型は objc_objectへのポインタ型です。すべてのオブジェクトはmallocで確保されるイメージで、これはブロック内のローカル変数(のオブジェクト)を自動的に解放してくれるCより悪い状況です。 Objective-Cでは、自動解放プールと、ルールによるオブジェクトの解放で対処します。 gccにはライブラリが何も付いていないので、以降はGNUstepを前提とします。Fedora 10 Linux + gcc 4.3 で確認しました。 NSAutoreleasePool オブジェクトを生成したら自動解放プールに登録するようにします。自動解放プールが解放されるときに登録されたオブジェ

  • 1