J'ai une URL pour une image (obtenue à partir de UIImagePickerController) mais je n'ai plus l'image en mémoire (l'URL a été enregistrée à partir d'une précédente exécution de l'application). Puis-je recharger UIImage à partir de l'URL?
Je vois que UIImage a un imageWithContentsOfFile: mais j'ai une URL. Puis-je utiliser dataWithContentsOfURL: de NSData pour lire l'URL?
EDIT1
basé sur la réponse de @ Daniel, j'ai essayé le code suivant mais cela ne fonctionne pas ...
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];
}
Quand je l'ai lancé, la console affiche:
-[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'
En regardant la pile d'appels, j'appelle URLWithString, qui appelle URLWithString: relativeToURL :, puis initWithString: relativeToURL :, puis _CFStringIsLegalURLString, puis CFStringGetLength, puis forwarding_prep_0 , puis transfert , puis - [NSObject doesNotRecognize].
Des idées pourquoi ma NSString (l'adresse de photoURL est 0x536fbe0) ne répond pas à la longueur? Pourquoi dit-il qu'il ne répond pas à - [longueur NSURL]? Ne sait-il pas que param est une NSString, pas une NSURL?
EDIT2
OK, le seul problème avec le code est la conversion de chaîne en URL. Si je code en dur la chaîne, tout le reste fonctionne bien. Donc, quelque chose ne va pas avec ma NSString et si je ne peux pas le comprendre, je suppose que cela devrait être une question différente. Avec cette ligne insérée (j'ai collé le chemin du journal de la console ci-dessus), cela fonctionne bien:
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";