2011-09-23 13 views
12

Tengo una pregunta: Quiero evitar [UIImage imageNamed:]. así lo hice:UIImage initWithContentsOfFile no funciona

UIImage *prodImg = [[UIImage alloc] initWithContentsOfFile:@"myimage.png"]; 
controller.productImg.image = prodImg; 
[prodImg release]; 

Pero ahora la imagen no se muestra más.

¿Alguien sabe cómo hacerlo funcionar?

+1

Ok, lo tengo trabajando con UIImage * prodImg = [[UIImage alloc] initWithContentsOfFile: [[ NSBundle mainBundle] pathForResource: @ "my image" ofType: @ "png"]]; – Tanner

+0

sugerencia: simplemente use '[UIImage imageNamed: @" myimage.png "]' porque agrega la lógica de almacenamiento en caché y extensión de dispositivo ("@ 2x", "~ ipad") –

+2

con [UIImage imageNamed: @ "myimage.png"] Recibo advertencias de memoria, mira aquí http://www.alexcurylo.com/blog/2009/01/13/imagenamed-is-evil/ – Tanner

Respuesta

25

El código anterior no funciona porque forma correcta de hacerlo es-

NSString *thePath = [[NSBundle mainBundle] pathForResource:@"default" ofType:@"jpeg"]; 
UIImage *prodImg = [UIImage imageWithContentsOfFile:thePath]; 
controller.productImg.image = prodImg; 
[prodImg release]; 

;)