ページ

2012年4月25日水曜日

mac:Objective-C メモリ管理の重要さというか面倒臭さ

今、仕事で作成しているPGが LEOPARD以上向けなので、ARCが使えない。
なので、release / retain / autorelease を駆使して、メモリ管理をしなくてはならない。

しかし、これがまた面倒だ。

なんとなく覚えた(知った)メモリ管理の作法としては・・・

・自分で alloc init (copyも)したオブジェクトは「必ず」自分で release する。
・自分で retain したオブジェクトは「必ず」release する。
・オブジェクトの入れ替え時には、過去のものは「必ず」release する。
(release してから オブジェクトの生成。いきなりオブジェクトを生成しない)
・それ以外は release しない。
・コンビニエンスコンストラクタで作成された使い回しする予定のオブジェクトは、retain しないと、後々開放されてしまう。

java はその点簡単で良かった。
その分、メモリを大量に消費してしまうが。

0 件のコメント:

コメントを投稿