Objective-Cメモリ管理(2)
2011 年 6 月 6 日 月曜日 by longSlife前回 Objective-Cのリファレンスカウンタ方式によるメモリ管理について記載しましたが、リファレンスカウンタ方式には、下記のようなオーナシップポリシーがあります。
1) [alloc]又は[new]で始まる名称のメソッド、[copy]を名前に含むメソッドでオブジェクトを生成したものは、所有者となる(所有権を持つ)。
2) 自身で生成していないオブジェクトを所有するには、[retain]を使用し所有権を取得する。
3) オブジェクトの所有(所有権を持っている)者は、所有権が不要になったときに[release] 又は[autorelease]を使用し所有権を放棄(解放)する。
所有権を取得していない使用者は、所有権を放棄(解放)してはいけない。
例えば、メソッド内で例1のようにオブジェクトを生成した場合は、所有権を持っていることになり不要になったときに破棄(解放)する必要があります。
(さらに…)