我有一个简单的函数来创建一个特殊大小的 UIImage :
- (UIImage*)imageWithSize:(CGSize) imSize
{
UIGraphicsBeginImageContext( imSize );
float r = 0.5f;
float g = 0.5f;
float b = 0.5f;
CGContextRef cxt = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(cxt, r, g, b, 1.0);
CGContextSetRGBFillColor(cxt, r,g,b, 1.0);
CGContextFillRect(cxt, CGRectMake(0.0, 0.0, imSize.width, imSize.height));
UIImage* retImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return retImg;
}
然后我以这种方式多次调用它(我正在使用ARC):
for(int i=0;i<3000;i++)
{
UIImage* im = [self imageWithSize:CGSizeMake(256,192)];
}
它会多次收到内存警告,然后在我的 iPhone4 上崩溃;(简单的功能有什么问题吗?