画像の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、次にForwarding、次に-[NSObject doesNotRecognizeSelector]を呼び出すURLWithStringを呼び出しています。
NSString(photoURLのアドレスが0x536fbe0)が長さに応答しない理由はありますか?-[NSURLの長さ]に応答しないと表示されるのはなぜですか?paramがNSURLではなくNSStringであることを知らないのですか?
EDIT2
OK、コードの唯一の問題は、文字列からURLへの変換です。文字列をハードコーディングすると、他のすべてが正常に機能します。したがって、NSStringに何か問題があり、それを理解できない場合は、別の質問として入力する必要があります。この行を挿入すると(上記のコンソールログのパスを貼り付けました)、正常に動作します。
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";