2016-09-22 11 views
0

私はSDWebImageライブラリを使用してイメージをダウンロードするコントローラをたくさん持っています。コードに見られるように、私は私があるため、これらのすべての私のダウンロード動作を、SDWebImageManagerは、データをダウンロードするには、インスタンスを共有使用しています次のコードSDWebImageManager用に異なるインスタンスを作成する方法

[[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:_urlToDownloadFrom] options:0 progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) 
    { 
     _productInfo.isDownloading = false; 

     _productInfo.isImageDownloadedScuessfully = finished; 

     if (image) 
     { 
      [_productInfo setMainImg:image]; 
      canShowListView ? [self.listCollectionView reloadData] : [self.gridCollectionView reloadData]; 
     } 
    }]; 

を使用していFIFOシリーズにキュー内に行きます。たとえば、私は10の画像をダウンロードしているコントローラを持っています。そして、5つ以上の画像をダウンロードするコントローラを上に押します。したがって、トップコントローラから来たこれらの新しい画像では、以前のコントローラがそれらの10画像をダウンロードするまで待たなければなりません。どうすればこの問題を解決できますか?考えられる解決策は、SDWebImageManagerの新しいインスタンスを作成することだけですが、SDWebImageDownloaderの共有インスタンスも作成されます。

答えて

0

SDWebImageDownloaderを試しましたか?ダウンロード操作のキューがあり、同時ダウンロード数を設定できることを覚えています。

0

別possibililty私が見るようにあなたが呼び出すとき、次のとおりです。

this class (SDWebImageDownloader)で定義されている
[[SDWebImageManager sharedManager] downloadImageWithURL: 

、操作をキューに入れられ、このキューの優先度がsee the Priority section in hereを設定することができますを維持するためNSOperationQueueを実装します。

私のアドバイスは、おそらくこのキューの優先度を設定することで問題を解決できるということです。

関連する問題