이미지의 URL이 있지만 (UIImagePickerController에서 가져옴) 더 이상 이미지가 메모리에 없습니다 (URL은 앱의 이전 실행에서 저장되었습니다). URL에서 UIImage를 다시로드 할 수 있습니까?
UIImage에 imageWithContentsOfFile이 있지만 URL이 있습니다. NSData의 dataWithContentsOfURL :을 사용하여 URL을 읽을 수 있습니까?
편집 1
@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 : relativeToURL :, initWithString : relativeToURL :, _CFStringIsLegalURLString, CFStringGetLength, forwarding_prep_0 , 전달 ,-[NSObject does notRecognizeSelector] 를 호출하는 URLWithString을 호출합니다 .
내 NSString (photoURL의 주소는 0x536fbe0)이 길이에 응답하지 않는 이유가 있습니까? -[NSURL 길이]에 응답하지 않는 이유는 무엇입니까? param이 NSURL이 아닌 NSString이라는 것을 모르십니까?
편집 2
코드의 유일한 문제는 문자열을 URL로 변환하는 것입니다. 문자열을 하드 코딩하면 다른 모든 것이 잘 작동합니다. 따라서 NSString에 문제가 있으며 알아낼 수 없다면 다른 질문으로 들어가야한다고 생각합니다. 이 줄을 삽입하면 (위의 콘솔 로그에서 경로를 붙여 넣었습니다) 제대로 작동합니다.
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";