я пытаюсь вырезать изображение и замаскировать его .... что я могу сделать успешно .. но программа завершается через несколько минут со статусом 101
- (void) maskImage {
if(scopeOn==1){
UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
cachedImage=[UIImage imageNamed:@"loop.png"];
cachedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
imageRef = [cachedImage CGImage];
subImage = CGImageCreateWithImageInRect(imageRef, CGRectMake(scopeLoc.x-25, scopeLoc.y-25, 50, 50));
xMaskedImage = CGImageCreateWithMask(subImage, mask);
zoomImg.image = [UIImage imageWithCGImage:xMaskedImage]; // retImage;
[zoomImg setCenter:scopeLoc];
[self addSubview:zoomImg];
CGImageRelease(subImage);
CGImageRelease(xMaskedImage);
}
}
это код, который я использую .... так как я не выделяю явную память, я предполагаю, что функция CGImageCreateWithImageInRect выделяет память, но не освобождается ... эта функция вызывается через каждые 0,1 секунды ... в конечном итоге выделяется большое количество памятных записок (я видел это в мониторе производительности утечки памяти)
Так есть ли другой способ, с помощью которого я мог бы достичь того же без этой функции ??