У меня есть URL для изображения (получен из UIImagePickerController), но у меня больше нет изображения в памяти (URL-адрес был сохранен из предыдущего запуска приложения). Могу ли я снова загрузить UIImage из URL?
Я вижу, что UIImage имеет imageWithContentsOfFile: но у меня есть URL. Могу ли я использовать данные NSDataWithContentsOfURL: читать URL?
EDIT1
на основе ответа @Daniel Я пробовал следующий код, но он не работает...
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];
}
Когда я запустил его, консоль показывает:
-[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'
Посмотрев на стек вызовов, я вызываю URLWithString, который вызывает URLWithString: relativeToURL:, затем initWithString: relativeToURL:, затем _CFStringIsLegalURLString, затем CFStringGetLength, затем forwarding_prep_0, затем пересылка, затем - [NSObject doesNotRecognizeSelector].
Любые идеи, почему мой NSString (адрес photoURL равен 0x536fbe0) не отвечает на длину? Почему он говорит, что не отвечает - [длина NSURL]? Разве он не знает, что param является NSString, а не NSURL?
EDIT2
ОК, единственная проблема с кодом - это преобразование строки в URL. Если я жестко кодирую строку, все остальное работает нормально. Так что что-то не так с моей NSString, и если я не могу понять это, я думаю, это должно идти как другой вопрос. Когда эта строка вставлена (я вставил путь из журнала консоли выше), он отлично работает:
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";