トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

Objective-C のメモリ管理

http://www.remus.dti.ne.jp/~yoshiki/cocoa/ed1/12/index.html
http://www.geocities.jp/osx_makuri/learningcocoa.html
http://idlysphere.blog66.fc2.com/blog-entry-120.html

基本

  • alloc したオブジェクトは release しなければならない
  • autorelease したオブジェクトは参照カウンタが 0 になると、イベントサイクルの最後で release される

 (関数の戻り値として autorelease したオブジェクトが返される場合、呼び出し元のスコープ内ではそのオブジェクトの生存が保証されているらしい)

  • retain したオブジェクトは release しなければならない
  • allocで始まる名前のメソッド以外が返す戻り値はreleaseしてはならない(≒autoreleaseされている)

おまけ

http://d.hatena.ne.jp/KishikawaKatsumi/20090520/1242748402

UIImage#imageNamed:は読み込みも描画もUIImage#imageWithContentsOfFile:やそれ以外のメソッドより5〜6倍速い
だけど、
UIImage#imageNamed:はクラッシュするまで画像をキャッシュし続けるみたい

なので、明確に確保と解放をするなら

UIImage#initWithContentsOfFile を使って、 release を行う
[カテゴリ: プログラミング言語 > Objective-C]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2009年06月01日 23時29分44秒