0

私はこのように割り当てられたカスタムクラスの配列を持っています:

myArray = [NSMutableArray array];

forループを介してオブジェクトを追加します:

for (CustomClass *obj in otherArray) {
    [myArray addObject:obj];
}

次に、すべてをビューに追加します。

CustomClass *obj = [myArray objectAtIndex:index];
[self.view addSubview:obj];

ビューに要素を追加するたびに、配列から要素を削除します。

[myArray removeObject:obj];

最後に、私は私のビューにすべての要素を持っています。しかし、ゲームの終わりに、ビューからすべてのオブジェクトを削除し、メモリからも削除する必要があります。私はARCを使用しています。オブジェクトをメモリから解放する方法もわかりません。ありがとう

4

1 に答える 1

0

あなたはそれがストックされているすべての場所からオブジェクトを削除する必要があります。ARCは、(コンパイル時に)保持/解放呼び出しを処理して、使用されていないときにゼロになります。参照されていないオブジェクトは、割り当てが解除されても関係ないことに注意してください。

したがって、オブジェクトが参照されている場所を覚えておく必要があります。

配列

myArrayに追加すると、カウントを保持するために1が追加されます。

削除すると1が削除されます。

意見

addSubviewを実行すると、1が追加されます。

スーパービューから削除する場合は、アイテムのremoveFromSuperviewセレクターを呼び出す必要があります(私はあなたがそれを知っていると思いますが、これはあなたの質問ではありません)

最初の配列

オブジェクトは常にotherArray配列にとどまっていることに気づきました。

于 2012-11-16T14:31:05.260 に答える