Ho un URL per un'immagine (ottenuto da UIImagePickerController) ma non ho più l'immagine in memoria (l'URL è stato salvato da una precedente esecuzione dell'app). Posso ricaricare nuovamente UIImage dall'URL?
Vedo che UIImage ha un imageWithContentsOfFile: ma ho un URL. Posso usare dataWithContentsOfURL di NSData: per leggere l'URL?
EDIT1
basato sulla risposta di @ Daniel ho provato il seguente codice ma non funziona ...
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];
}
Quando l'ho eseguito la console mostra:
-[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'
Guardando lo stack di chiamate, sto chiamando URLWithString, che chiama URLWithString: relativeToURL :, quindi initWithString: relativeToURL :, quindi _CFStringIsLegalURLString, quindi CFStringGetLength, quindi forwarding_prep_0 , quindi inoltro , quindi - [NSObjectSN).
Qualche idea sul perché il mio NSString (l'indirizzo di photoURL è 0x536fbe0) non risponda alla lunghezza? Perché dice che non risponde a - [lunghezza NSURL]? Non sa che param è un NSString, non un NSURL?
EDIT2
OK, l'unico problema con il codice è la conversione da stringa a URL. Se codifico la stringa, tutto il resto funziona bene. Quindi qualcosa non va nel mio NSString e se non riesco a capirlo, suppongo che dovrebbe andare come una domanda diversa. Con questa riga inserita (ho incollato il percorso dal registro della console sopra), funziona benissimo:
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";