Estoy intentando una prueba simple para un proyecto mucho más complejo, pero estoy desconcertado de por qué el código siguiente se bloquea y da un error EXC_BAD_ACCESS.UIImage de CGImageRef
Esto se llama desde una UIView.
- (void)testing {
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"ball.png" ofType:nil];
CGImageRef imageRef = [[[UIImage alloc]initWithContentsOfFile:imagePath]CGImage];
// CGImageRetain(imageRef);
UIImage *newImage = [[UIImage alloc]initWithCGImage:imageRef];
UIImageView *iv = [[UIImageView alloc]initWithImage:newImage];
[self addSubview:iv];
}
Mi conjetura es que el CGImageRef no está siendo retenido pero añadiendo CGImageRetain (imageRef); No hace diferencia.
También debería tener en cuenta que este proyecto tiene ARC encendido.
EDITAR
lo hice un poco más pruebas y han descubierto que esto está directamente relacionado con ARC como creé 2 proyectos básicos que incluye sólo el código de seguridad. El primero con ARC apagado y funcionó perfectamente. El siguiente con ARC encendido y BAM se bloquea con el mismo error. Lo interesante es que recibí un error de registro real SOLAMENTE la primera vez que ejecuté el proyecto antes del accidente.
Error: ImageIO: ImageProviderCopyImageBlockSetCallback 'ImageProviderCopyImageBlockSetCallback' header is not a CFDictionary...
Fantástico, ahora veo exactamente lo que está pasando. Al menos yo estaba en el camino correcto. Gracias Rob. – EcksMedia