VM: ráster CG La memory de datos sigue creciendo

así que estoy intentando hacer una aplicación que permita al usuario cambiar el color del UIImage, para eso estoy usando esta function que encontré

- (UIImage *)imageWithTintColor:(UIColor *)color fraction:(CGFloat)fraction { if (color) { UIImage *image; if ([UIScreen instancesRespondToSelector:@selector(scale)]) { UIGraphicsBeginImageContextWithOptions([self size], NO, 0.f); } else { UIGraphicsBeginImageContext([self size]); } CGRect rect = CGRectZero; rect.size = [self size]; [color set]; UIRectFill(rect); [self drawInRect:rect blendMode:kCGBlendModeDestinationIn alpha:1.0]; if (fraction > 0.0) { [self drawInRect:rect blendMode:kCGBlendModeSourceAtop alpha:fraction]; } image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; } return self; } 

todo funciona, pero los datos raster CG están creciendo en memory introduzca la descripción de la imagen aquí

Encontré el problema, y ​​fue mi mala lógica, estoy usando 2 vistas una para mostrar y otra para trabajar con ex: cambiar el tamaño, mover, rotar. Y cada vez que estaba agregandoSubview a ambos, donde uno de ellos necesita mantener solo 1 a la vez, un simple:

  for (UIView *view in 2cndView.subviews) { [view removeFromSuperview]; } 

hizo el truco para mí

He estado luchando con mi aplicación, que de repente no se lanzaría correctamente, desde hace algún time. Resultó que cuando había cambiado una serie de imágenes ' Render as Template en el file de file de image, causó que la aplicación explotara totalmente. CG Raster Data estaba creciendo exponencialmente y finalmente causó que la aplicación se detuviera y Xcode simplemente dijo

Perdió la connection con el iPhone … revise las conexiones, etc.

Parece que durante cada lanzamiento las imágenes se vuelven a procesar para esta configuration de 'Plantilla', que consume una cantidad repugnante de RAM y que en realidad no le permite iniciarse. Para resolver esto, networkinguje la resolución de las imágenes, tan simple como eso.