Je rencontre une fuite de mémoire lors de l'utilisation de cette méthode personnalisée qui renvoie un CGImageRef. Je ne peux pas libérer "cgImage" correctement parce que je dois le retourner. Que ferais-je?CGImageRef Fuite de mémoire
- (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;
}
J'avais une fuite similaire. Essayez ma réponse ici: http://stackoverflow.com/a/23669476/3631310 – Vlad