2010-12-30 10 views
1

私はiPhoneのメモリ管理の基本を理解しています。保持と解放の呼び出しは一致する必要があります。iphoneのメモリ管理、現実のシナリオ?

メモリプールがフラッシュされたときに解放される自動解放もできます。

私は理解するために現実の風景を必要としています。なぜあなたは保持を呼び出してから解放したいのですか?

オートレリースは一般的にどのような状況で割り当てられていますか?

私はちょうど、iPhoneのパラダイムの下で、どのようにメモリ管理がうまくいくかを理解したいと思っていますが、パターンがありますか?

答えて

2

現実のプログラムを書きます。すべてのプログラム。すでに存在するものの単なるコピーかもしれませんが、集中的に使用した後はメモリ管理について学ぶことは間違いありません。

さらに、それを書き、それを一般の人々(またはopensourceコミュニティ)に広めます。あなたが見つけられないメモリバグは間違いなく他の人によって発見されます。

何かを理解する唯一の真の方法は、それを練習すること(そして間違いを犯すこと)です。メモリ管理を練習する唯一の方法は、実際にメモリ管理を使用すること(そして間違いを犯すこと)です。

1

自動解放プールを誤解しています。オートリリースプールに置かれたものはすべて、現在のイベントループの最後にリリースされます。

これは、イベントの処理のためだけにオブジェクトを使用していることを意味しますが、ARプールの候補ですが、イベント間で状態を管理する必要があります。 。これは明らかに間違った間違った単純化ですが、あなたの理解に役立つかもしれません:-)

Jasarienが提案した内容を読むことを他の多くの考慮すべき点があります。

+0

自動解放プールは、必ずしもイベントループに関連付けられていません。自動解放プールを手動でネストするのが一般的です。また、Grand Central Dispatchには、「たびに排水される」プールがあります。 – bbum

+0

@bbum:私が言ったように:ひどく間違った単純化:-) – VdesmedT