Hasta IOS 3.2, que utiliza este tipo de código para cargar la imagen UIImageView
en el fondo, y funcionó bien ...iOS4 y de fondo [UIImage setImage:]
Código:
- (void)decodeImageName:(NSString *)name
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
UIImage *newImage = [UIImage imageNamed:name];
[myImageView setImage:newImage];
[pool release];
}
...
[self performSelectorInBackground:@selector(decodeImageName:) withObject:@"ID"]
. .. incluso si [UIImageView setImage:]
no era seguro para subprocesos!
Pero desde iOS 4, ya no funciona ... Las imágenes aparecen en la pantalla dos segundos después de la llamada setImage
. Y si hago un [myImageView performSelectorOnMainThread:@selector(setImage:) withObject:newImage waitUntilDone:YES]
en lugar de [myImageView setImage:newImage]
, las imágenes aparecen inmediatamente pero parecen ser redecodificadas de nuevo sobre la marcha (ignorando el anterior [UIImage imageNamed:]
que ya debería haber decodificado los datos de imagen), causando una pausa en mi hilo principal ... . Incluso si la documentación dice La memoria caché de imágenes subyacente se comparte entre todos los hilos..
¿Alguna idea?
Hola, gracias por hacer esta pregunta.Me preguntaba por qué no funciona ahora con mi aplicación. – GeneCode