2012-01-02 5 views
2

私はすでにAFNetworkingを非同期イメージのダウンロードに使用しています。ディスクまたはコアデータに格納する方法があるかどうか疑問に思っていましたが、SDWebImageを調べる必要がありますか?あるいは、カスタムソリューションを提案することもできます。 基本的には、URLから画像を取得するために非常に透過的な方法を使用したいので、非同期ダウンロードを再度見つけられない場合は、ディスク(またはCore Data)の外観に見つからない場合はNSCacheで最初に探します。任意のアイデアiOsに画像キャッシュのフレームワークはありますか?

+0

正確には重複した質問ではありませんが、ここでの回答は同じです:http://stackoverflow.com/questions/1130089/lazy-load-images-in-uitableview –

+0

SDWebImageは、特にプログレッシブ画像のダウンロードに便利です。しかし、それは** NSUrlConnection **(最新のバージョン3.7.5でも)を基にしています。私はそれがiOS 9を使い始めて非難されていることを知っています。NSUrlSessionは3年以上前からあり、将来の勝者はNSUrlSessionを実装しています。 ** AFNetworking 3.0 **は完全にNSURLSessionに基づいています。だから私はAfnetworkingがSDWebImageよりも良い選択だと思う。 –

答えて

2

SDWebImageは非同期画像取り込みとキャッシングの本当に固体実装であることがわかっている...これ試してみます。

ウェブ画像をボタンや画像ビューに使用している場合は、-(void)setImageWithURL:(NSURL *)urlメソッドを呼び出してキャッシュをチェックして画像を取得し、そこにない場合はダウンロードしてasyncでダウンロードしてキャッシュを設定してください。

あなたには、いくつかの他のもののための画像が必要な場合は、あなたはまだ呼び出すことで、このライブラリの恩恵を受けることができます。

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 

ダウンロードしようとする前にキャッシュをチェックするので、あなたがイメージを必要とするたびにこれを呼び出すようにしてください。

+0

SDWebImageは** NSUrlConnection **を基にしています。これはiOS 9を使用して非推奨になりました。AFNetworking 3.0ではNSURLSessionが使用されています。現在の選択肢はAFNetworkingだと思います! –

0

EGOImageには、ファイルシステム上で基本的に非同期呼び出しとイメージのキャッシュを行うことができます。

関連する問題