Инструменты не показывают никаких утечек, но ассигнования продолжают увеличиваться - PullRequest
0 голосов
/ 03 февраля 2011

Вот фрагмент кода, чтобы выделить часть экрана, я хотел бы знать, есть ли утечки в этом коде:

- (UIImage*)createImageSection:(UIImage*)image section:(CGRect)section
{
UIScreen *screen = [UIScreen mainScreen];
float originalWidth = image.size.width * [screen scale]  ;
float originalHeight = image.size.height * [screen scale];
int w = originalWidth * section.size.width ;
int h = originalHeight * section.size.height ;


CGContextRef ctx = CGBitmapContextCreate(nil, w , h , 8, w * 8, CGImageGetColorSpace([image CGImage]), kCGImageAlphaPremultipliedLast);
CGContextClearRect(ctx, CGRectMake(0, 0, originalWidth * section.size.width * [screen scale], originalHeight * section.size.height * [screen scale])); // w + h before
CGContextTranslateCTM(ctx, (float)-originalWidth * section.origin.x , (float)-originalHeight * section.origin.y );
CGContextDrawImage(ctx, CGRectMake(0, 0, originalWidth , originalHeight ), [image CGImage]);

CGImageRef cgImage = CGBitmapContextCreateImage(ctx);
//UIImage* resultImage = [[UIImage alloc] initWithCGImage:cgImage scale: [screen scale]];
UIImage* resultImage = [[UIImage alloc] initWithCGImage:cgImage scale:[screen scale] orientation:UIImageOrientationUp] ;
CGContextRelease(ctx);
CGImageRelease(cgImage);
return resultImage ;

}

Спасибо Д

1 Ответ

0 голосов
/ 03 февраля 2011

Результат автоматического выхода изображения

UIImage* resultImage = [[UIImage alloc] initWithCGImage:cgImage scale:[screen scale] orientation:UIImageOrientationUp]

до

UIImage* resultImage = [[[UIImage alloc] initWithCGImage:cgImage scale:[screen scale] orientation:UIImageOrientationUp] autorelease];
...