Cocoa の Memory Management

NSAutoreleasePool とか release, autorelease とかを実はまだよくわかってない。
ドキュメントを読んでみたら、Leopard 以降では Garbage Collection*1機能があるらしい。
gcc -fobjc-gc あるいは gcc -fobjc-gc-only でこれを有効化できる。
http://developer.apple.com/documentation/DeveloperTools/gcc-4.0.1/gcc/Objective_002dC-and-Objective_002dC_002b_002b-Dialect-Options.html


Garbage Collection についてのドキュメントはここらへんっぽい。
http://developer.apple.com/documentation/Cocoa/Conceptual/GarbageCollection/Introduction.html
Mac OS X 10.5 より前の Memory Management、つまり alloc, release, autorelease, retain といったものはこっち。
http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html

*1:カタカナ表記はガベージコレクションガーベジコレクションとどっちが一般的?Google のヒット数ではガベージコレクションのほうが多いようだけど