画像を生成するためにかなりメモリを集中的に使用するループを実行していますが、メモリ リークが発生したり、メモリ割り当てを保持する自動解放が長すぎたりします。
以下で何が保持され、自動リリースされているかを正確に説明してもらえますか? これを Allocations インストゥルメントで実行したところ、ループが終了し、すべての autorelease オブジェクトの割り当てが解除されるまでサイズが大きくなります (3 日間の試行錯誤から理解できるように)。ループが少ない場合はこれで問題ありませんが、200 を超えると、自動解放される前に最終的にクラッシュします。次のコードをコメントアウトすると、この増加が止まり、Instruments グラフは一定量のメモリで水平に保たれます。
for (int l=0;1 < 300; 1++) {
UIImage * Img = [[UIImage alloc] initWithContentsOfFile:Path]; //Path is a NSString pointing to bundlePath and a sample image
UIImageView *ImgCont = [[UIImageView alloc] initWithImage:Img];
//here I usually add the view to a UIView but it is not required to see the problem
ImgCont.frame = CGRectMake(x, y, w, h);
[ImgCont release];
[Img release];
}
これを NSAutoreleasePool でラップしようとしましたが、成功しませんでした。何が間違っているのでしょうか?
ありがとう、