[解決済み] UIImageをURLから読み込むことはできますか?
質問
画像のURL(UIImagePickerControllerから取得)を持っていますが、メモリ内に画像がありません(URLはアプリの以前の実行から保存されたものです)。 URL から UIImage を再度読み込むことはできますか。
UIImage には imageWithContentsOfFile: があるようですが、私は URL を持っています。 NSData の dataWithContentsOfURL: を使って 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、そして、URLStringを呼んでいます。 forwarding_prep_0 では 転送 であれば、-[NSObject doesNotRecognizeSelector]となります。
私の NSString (photoURL のアドレスは 0x536fbe0) が length に反応しないのはなぜか、何か思い当たることはありますか? なぜ -[NSURL length] に反応しないと言うのでしょうか? paramがNSStringであり、NSURLではないことを知らないのでしょうか?
EDIT2
OK、このコードの唯一の問題は、文字列からURLへの変換です。 文字列をハードコードすると、他のすべてが正常に動作します。 だから、何かが私のNSStringで間違っていて、もし私がそれを理解できないなら、私はそれが別の質問として入るべきだと思います。 この行を挿入すると(私は上記のコンソールログからパスを貼り付けました)、うまく動作します。
photoURL = @"file://localhost/Users/gary/Library/Application%20Support/iPhone%20Simulator/3.2/Media/DCIM/100APPLE/IMG_0004.JPG";
どのように解決するのですか?
この方法でできます(同期ですが、コンパクトです)。
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:MyURL]]];
より良い方法は、AppleのLazyTableImagesを使用してインタラクティブ性を維持することです。
関連
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] SwiftでURLから画像を読み込む/ダウンロードする
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?
-
[解決済み] Swift 3でディスパッチキューを作成する方法
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。