J'ai une URL d'une image (obtenu à partir de UIImagePickerController) mais je n'ai plus l'image dans la mémoire (l'URL a été enregistré à partir d'une exécution précédente de l'application). Puis-je recharger la UIImage à partir de l'URL de nouveau?
Je vois que UIImage a un imageWithContentsOfFile: mais j'ai une URL. Puis-je utiliser NSData de dataWithContentsOfURL: pour lire l'URL?
-----EDIT1- - - - - @Daniel en réponse, j'ai essayé le code suivant mais ça 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 couru 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'appel, je suis d'appeler URLWithString, qui appelle URLWithString:relativeToURL:, puis initWithString:relativeToURL:, puis _CFStringIsLegalURLString, puis CFStringGetLength, puis forwarding_prep_0, puis transfert, puis -[NSObject doesNotRecognizeSelector].
Des idées pourquoi mon NSString (photoURL adresse de l'est 0x536fbe0) ne répond pas à la longueur? Pourquoi ne fait-il dire qu'il n'a pas répondu à[NSURL longueur]? N'est-il pas de savoir que les param est un NSString, pas un NSURL?
------EDIT2----- OK, le seul problème avec du code est la chaîne de caractères de l'URL de la conversion. Si j'ai coder en dur la chaîne, tout le reste fonctionne bien. Si quelque chose est incorrect avec mon NSString et si je ne peux pas comprendre, je suppose qu'il faut aller dans une autre question. Avec cette ligne insérée (j'ai collé le chemin d'accès à partir de la console de log ci-dessus), il fonctionne très bien:
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";