我正在使用 ARC 为 iOS 5 构建应用程序,但我似乎遇到了一些内存问题。基本上,它对显示器的一部分进行屏幕截图,将 UIImage 放在一个 MSMutableArray 中,然后将屏幕截图拼凑成一个大图像。现在的问题是,在这样做了几次之后,操作系统由于高内存使用而关闭了应用程序。
这是将 UIImage 拼凑在一起的片段:
UIImage* finalImage = nil;
//join the screenshot images together
UIGraphicsBeginImageContext(CGSizeMake(collage.width, collage.height));
{
int hc = 0;
for(UIImage *img in imageArr)
{
NSLog(@"drawing image at:: %i", hc);
[img drawAtPoint:CGPointMake(0, hc)];
hc+=img.size.height;
img = nil;
}
//NSLog(@"creating finalImage");
finalImage = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext();
//do something with the combined image
//remove all the objects
[imageArr removeAllObjects];
//reset class instance
[self setImageArr: [[NSMutableArray alloc] init]];
它们是我可以使用的任何其他替代方案,因此没有使用太多内存吗?也许将 CGImageRef 存储在数组中?上述代码是否存在任何潜在的内存泄漏?
任何提示,指针将不胜感激。
谢谢。