我正在运行一个相当消耗内存的循环来生成图像,并且已经陷入内存泄漏/自动释放保留内存分配太久的问题。
任何人都可以准确解释下面持有和自动发布的内容吗?我已经通过 Allocations 工具运行了它,它的大小会增加,直到循环完成并释放所有自动释放对象(我从 3 天的反复试验中了解到)。这对于较少的循环是可以的,但是当我超过 200 时,它最终会在它自动释放之前崩溃。通过注释掉以下代码,这种增加停止并且仪器图表保持水平并具有一定的内存量:
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 包装它但没有成功 - 任何想法我做错了什么?
谢谢,