2009年8月31日月曜日

iPhone:インスタンスの生成と破棄(その3)

引き続き、インスタンスの生成と破棄に関してまとめます。
(その1)(その2)も参照してください。

今回は、他のオブジェクトが生成したインスタンスをメソッドを通して受け取る場合を考えます。
受け取ったインスタンスがオーナー側で破棄された場合にも参照を継続できるようにする必要があります。そのための方法として以下の2つの方法があります。

(A)インスタンスを保持する場合
オーナー側と同じインスタンスを共有したい場合にこの方法を使用します。
勝手に破棄されないように、受け取った時点でretainを実行します。また、不要となった時点で必ずreleaseを実行します。

(B)インスタンスをコピーする場合
オーナー側とインスタンスを共有したくない場合に使用します。
(A)と比較するト余分にメモリを消費することに留意が必要です。

0 件のコメント:

コメントを投稿