Tôi có một URL cho một hình ảnh (lấy nó từ UIImagePickerControll) nhưng tôi không còn hình ảnh trong bộ nhớ (URL đã được lưu từ lần chạy ứng dụng trước đó). Tôi có thể tải lại UIImage từ URL không?
Tôi thấy rằng UIImage có một hình ảnhWithContentsOfFile: nhưng tôi có một URL. Tôi có thể sử dụng dữ liệu của NSDataWithContentsOfURL: để đọc URL không?
EDIT1
dựa trên câu trả lời của @ Daniel, tôi đã thử đoạn mã sau nhưng không được ...
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];
}
Khi tôi chạy nó, giao diện điều khiển hiển thị:
-[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'
Nhìn vào các cuộc gọi stack, tôi gọi URLWithString, trong đó kêu gọi URLWithString: relativeToURL :, sau đó initWithString: relativeToURL :, sau đó _CFStringIsLegalURLString, sau đó CFStringGetLength, sau đó forwarding_prep_0 , sau đó chuyển tiếp , sau đó - [NSObject doesNotRecognizeSelector].
Có ai biết tại sao NSString của tôi (địa chỉ của photoURL là 0x536fbe0) không đáp ứng với độ dài không? Tại sao nó nói nó không đáp ứng - [NSURL chiều dài]? Nó không biết rằng param là NSString chứ không phải NSURL?
EDIT2
OK, vấn đề duy nhất với mã là chuyển đổi chuỗi thành URL. Nếu tôi mã hóa chuỗi, mọi thứ khác đều hoạt động tốt. Vì vậy, có điều gì đó không ổn với NSString của tôi và nếu tôi không thể tìm ra nó, tôi đoán đó sẽ là một câu hỏi khác. Với dòng này được chèn (Tôi đã dán đường dẫn từ nhật ký giao diện điều khiển ở trên), nó hoạt động tốt:
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";