私はアプリを開発しましたが、現在はInstrumentsを使用してメモリ使用量を確認しています。オブジェクトの保持/解放プロセスを理解するのに問題があります。これはインスツルメンツが言うことです:
オブジェクトを配列に追加するとき、ビューにオブジェクトを追加するとき、および配列から離すと、保持カウントが増加します。したがって、オブジェクトを使用するremoveFromSuperviewと、オブジェクトretainCountがゼロになることはないため、オブジェクトはメモリを解放しません。
編集1:私はARCを使用していると言うのを忘れました。
編集2:私は何が起こるかを正確に説明します:私はオブジェクトをと呼ばれるクラスの他のオブジェクトと一緒に作成しますNKLevelGenerator。その中にsを割り当ててから、返されるNKIngredientaにすべてを追加します。NSArrayここで、すべてのオブジェクトの保持数は2です。私のNKLevelVC、私のViewController、私はこの命令を使用します:
[level addObjectsFromArray:[levelGenerator level1WithDelegate:self ciotola:ciotola bagliore:bagliore difficulty:NKDifficultyHard]];
オブジェクトlevelはNSMutableArrayそのiallocとinitinviewDidLoadです。ここから、この操作を実行する別のメソッドを呼び出します。
- (void)insertInArrayRandomly {
for (int i=0; i<[level count]; i++) {
[ingredienti insertObject:[level objectAtIndex:[[indexes objectAtIndex:i]integerValue]] atIndex:i];
}
}
オブジェクトは私とingredientiの別のものです。オブジェクトをランダムに抽出するためのランダムインデックスを含む配列です。それから私はこれをやっています:NSMutableArrayallocinitviewDidLoadindexesNSIntegerNKIngredient
NKIngredient *ing = [ingredienti objectAtIndex:index];
[[self view] insertSubview:ing belowSubview:navBar];
[ing animateIngredient];
[ingredienti removeObject:ing];
