2

非同期画像のダウンロードにはすでにAFNetworkingを使用しています。ディスクまたはCoreDataに保存する方法があるかどうか疑問に思っていましたが、SDWebImageを調査する必要がありますか?または、カスタムソリューションを提案することもできます。基本的に、URLから画像を取得するための非常に透過的な方法が必要なので、最初にNSCacheで画像を探します。見つからない場合は、ディスク(またはCore Data)で検索します。見つからない場合は、非同期でダウンロードします。アイデアをありがとう

4

3 に答える 3

2

SDWebImage は、非同期の画像フェッチとキャッシュの非常に堅実な実装であることが証明されています。

-(void)setImageWithURL:(NSURL *)urlボタンやイメージビューに Web 画像を使用している場合は、キャッシュをチェックして画像を取得し、そこにない場合は非同期ダウンロードして設定する前にキャッシュに保存するメソッドを呼び出すこともできます。

他のもののために画像が必要な場合でも、次のように呼び出してこのライブラリを利用できます。

SDWebImageManager *manager = [SDWebImageManager sharedManager];

// Remove in progress downloader from queue
[manager cancelForDelegate:self];

[manager downloadWithURL:yourURL delegate:self options:0];

そして、デリゲート メソッドで後で画像を取得します。

- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image
{
    // Do something with the image
}

ご了承ください

- (void)downloadWithURL:(NSURL *)url delegate:(id<SDWebImageManagerDelegate>)delegate options:(SDWebImageOptions)options

ダウンロードを試みる前にキャッシュをチェックするので、画像が必要になるたびにこれを呼び出しても安全です。

于 2012-01-02T18:35:56.507 に答える
0

これを試してみてください...

https://github.com/rs/SDWebImage

于 2012-01-02T18:09:34.567 に答える
0

基本的に非同期呼び出しとファイル システムでの画像のキャッシュを行うEGOImageを見ることができます。

于 2012-01-02T20:25:22.113 に答える