ImageviewでURL画像を直接開きますが、将来の参照用に画像をキャッシュメモリに保存したいのですが...問題を解決するのに役立ちます。
前もって感謝します
画像キャッシュを使用するSDWebImageを使用できます...
このライブラリはUIImageVIew
、Webからのリモートイメージをサポートするためのカテゴリを提供します。
それは提供します:
UIImageView
CocoaTouchフレームワークにWeb画像とキャッシュ管理を追加するカテゴリ
非同期画像ダウンローダー
自動キャッシュ有効期限処理を備えた非同期メモリ+ディスクイメージキャッシング
背景画像の解凍
同じURLが複数回ダウンロードされないことの保証
偽のURLが何度も再試行されないことの保証
メインスレッドがブロックされないことの保証
公演!GCDとARCを使用する
これはiOS開発の古典的な問題です。以前、NSOperationQueueを使用するOnlineImageViewクラスを作成しましたが、GCDの方が優れている可能性があります。
オンライン画像にアクセスしたい:
いくつかのサンプルコード:
- (void)downloadImage:(NSDictionary *)info
{
/* HOWTO: Prevent Downloading the same url many times */
/* Keep the download task one by one ? */
NSString *url = [info objectForKey:@"url"];
NSURL *imageUrl = [NSURL URLWithString:url];
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageUrl]];
if (image) {
id theDelegate = [info objectForKey:@"delegate"];
if ([theDelegate respondsToSelector:@selector(imageDownloader:didFinishWithImage:)]) {
[theDelegate imageDownloader:self didFinishWithImage:image];
}
[cacheQueue cacheImage:image withKey:url];
} else {
#ifdef DEBUG
NSLog(@"Failed to download : %@\n", url);
#endif
}
}
SDWebImageを使用します。画像データのキャッシュに最適で簡単です。