Mam wyciek pamięci przy użyciu tej niestandardowej metody, która zwraca CGImageRef. Nie mogę poprawnie zwolnić "cgImage", ponieważ muszę je zwrócić. Co mam zrobić?CGImageRef wyciek pamięci
- (CGImageRef)rectRoundedImageRef:(CGRect)rect radius:(int)radius
{
CGSize contextSize = CGSizeMake(rect.size.width, rect.size.height);
CGFloat imageScale = (CGFloat)1.0;
CGFloat width = contextSize.width;
CGFloat height = contextSize.height;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, width * imageScale, height * imageScale, 8, 0, colorSpace, kCGImageAlphaPremultipliedLast);
// Draw ...
// Get your image
CGImageRef cgImage = CGBitmapContextCreateImage(context);
CGColorSpaceRelease(colorSpace);
CGContextRelease(context);
//CGImageRelease(cgImage); //If I release cgImage the app crashes.
return cgImage;
}
Miałem podobny przeciek. Wypróbuj moją odpowiedź tutaj: http://stackoverflow.com/a/23669476/3631310 – Vlad