2010年7月28日水曜日

objective-cのメモリ管理について

Cocoaメモリ管理プログラミングガイトを読んでみました。メモ。

  • 1つのコードブロック内では、copy、alloc、およびretainを使用した回数と、releaseおよび autoreleaseを使用した回数は等しくなければならない。
  • 「alloc」または「new」で始まる名前のメソッドや、「copy」を含む名前のメソッド(たとえ ば、alloc、newObject、mutableCopy)を使用して作成した場合、または オブジェクトに retainメッセージを送信した場合にのみ、そのオブジェクトを所有できる。
  • 自分が所有するインスタンス変数を解放するためにdeallocを実装する。
  • (独自のdeallocメソッド内で親の実装を呼び出す場合以外は)deallocを直接呼び出してはならない。
  • 配列、辞書、集合などのコレクションにオブジェクトを追加または設定すると、コレクションがそ のオブジェクトの所有権を取得します。オブジェクトがコレクションから削除されたりコレクショ ン自体が解放されたりすると、コレクションは所有権を放棄します。

0 件のコメント:

コメントを投稿