Tengo una URL para una imagen (la obtuve de UIImagePickerController) pero ya no tengo la imagen en la memoria (la URL se guardó de una ejecución anterior de la aplicación). ¿Puedo volver a cargar el UIImage desde la URL?
Veo que UIImage tiene una imageWithContentsOfFile: pero tengo una URL. ¿Puedo usar dataWithContentsOfURL de NSData para leer la URL?
EDITAR1
basado en la respuesta de @ Daniel intenté el siguiente código pero no funciona ...
NSLog(@"%s %@", __PRETTY_FUNCTION__, photoURL);
if (photoURL) {
NSURL* aURL = [NSURL URLWithString:photoURL];
NSData* data = [[NSData alloc] initWithContentsOfURL:aURL];
self.photoImage = [UIImage imageWithData:data];
[data release];
}
Cuando lo ejecuté, la consola muestra:
-[PhotoBox willMoveToWindow:] file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG
*** -[NSURL length]: unrecognized selector sent to instance 0x536fbe0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL length]: unrecognized selector sent to instance 0x536fbe0'
Mirando la pila de llamadas, llamo a URLWithString, que llama a URLWithString: relativeToURL :, luego initWithString: relativeToURL :, luego _CFStringIsLegalURLString, luego CFStringGetLength, luego forwarding_prep_0 , luego reenvío , luego - [NSObject doesNleReco.
¿Alguna idea de por qué mi NSString (la dirección de photoURL es 0x536fbe0) no responde a la longitud? ¿Por qué dice que no responde a [longitud NSURL]? ¿No sabe que param es un NSString, no un NSURL?
EDIT2
OK, el único problema con el código es la conversión de cadena a URL. Si codifico la cadena, todo lo demás funciona bien. Entonces, algo está mal con mi NSString y si no puedo resolverlo, supongo que debería ser una pregunta diferente. Con esta línea insertada (pegué la ruta desde el registro de la consola anterior), funciona bien:
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";