2016-09-22 6 views
0

Ich habe viele Controller, wo ich Bilder mit SDWebImage Library herunterladen. Ich verwende folgenden CodeWie erstelle ich andere Instanz für 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]; 
     } 
    }]; 

Wie in Code zu sehen Ich bin mit SDWebImageManager Instanz teilten sich die Daten herunterzuladen, da diese alle meine Herunterladeoperation in einer Warteschlange in FIFO-Serie gehen. Zum Beispiel habe ich einen Controller, wo ich 10 Bilder herunterlade, dann drücke ich einen anderen Controller darüber, der mehr 5 Bilder herunterlädt. Für diese neuen Bilder, die vom obersten Controller kommen, müssen sie warten, bis der vorherige Controller diese 10 Bilder heruntergeladen hat. Wie kann ich dieses Problem lösen? Ich denke nur, dass ich eine neue Instanz von SDWebImageManager erstellen kann, die aber auch eine gemeinsame SDWebImageDownloader-Instanz erstellt.

Antwort

0

Haben Sie versucht SDWebImageDownloader? Ich erinnere mich, dass es eine Reihe von Download-Vorgängen gab und Sie die Anzahl der gleichzeitigen Downloads konfigurieren können.

0

Ein weiterer possibililty wie ich sehe, ist, wenn Sie anrufen:

[[SDWebImageManager sharedManager] downloadImageWithURL: 

, die in this class (SDWebImageDownloader) definiert ist, eine NSOperationQueue implementiert Betrieb der Warteschlange für den Erhalt und die Priorität dieser Warteschlange kann see the Priority section in here eingestellt werden.

Mein Rat ist, dass vielleicht die Einstellung der Priorität dieser Warteschlange Ihr Problem beheben kann.

Verwandte Themen