0

私は、小さなオブジェクトをたくさん保持する小さなオブジェクトをたくさん保持するオブジェクトを持っています。メモリをきれいにするために、すべてのオブジェクトを一度に解放できるようにしたいと考えています。

私はARCを使用しているので、そうすればうまくinitialObject = nilいくと思いました...しかし、動作しているとは思いません(メモリはまだ使用中です)。

オブジェクトには、objective-c と c++ (openCV) コードの両方が含まれています。

必要なことをどのように達成できますか?

4

3 に答える 3

0

これらのオブジェクトを参照する変数を nil に設定するだけです。コンパイラはその時点でオブジェクトを解放し、それらへの強い参照が他に存在しない場合、オブジェクトは破棄されます。

小さいオブジェクトを保持するオブジェクトを nil に設定し、そのオブジェクトを nil に設定します。

つまり、最初にルートオブジェクトがオブジェクトを保持しないサブオブジェクトをnilに設定し、次にルートオブジェクトをnilに設定すると、ルートオブジェクトとサブオブジェクトが破棄されます。

于 2013-07-29T08:11:58.337 に答える
0

タイプ NSobject のサブクラスである 1 つのデータ構造を作成し、その中に 1 つの dealloc メソッドを配置し、その dealloc 内のすべての小さなオブジェクトを解放します。作業が完了したら、メイン オブジェクトを解放します。これは単純なボスです。

于 2013-07-29T07:20:50.660 に答える