2017-07-22 4 views
0

ich meinen Code, ich herunterladen Bild von URL über SDWebImage RahmenSDWebimage unvereinbar Block

[[SDWebImageDownloader sharedDownloader] downloadImageWithURL:self.bigArtworkURL 
                      options:0 
                     progress:^(NSInteger receivedSize, NSInteger expectedSize) { 

        } completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) { 

         if (image !=nil) { 
          NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init]; 

          [songInfo setObject:self.listStationCurrent forKey:MPMediaItemPropertyTitle]; 
          [songInfo setObject:[NSString stringWithFormat:@"%@-%@",self.title,self.artist] forKey:MPMediaItemPropertyArtist]; 
          MPMediaItemArtwork *imageArt = [[MPMediaItemArtwork alloc] initWithImage:image]; 
          [songInfo setObject:imageArt forKey:MPMediaItemPropertyArtwork]; 


          [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo]; 

         }else{ 

          NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init]; 

          [songInfo setObject:self.listStationCurrent forKey:MPMediaItemPropertyTitle]; 
          [songInfo setObject:[NSString stringWithFormat:@"%@-%@",self.title,self.artist] forKey:MPMediaItemPropertyAlbumTitle]; 
          MPMediaItemArtwork *imageArt = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:PLACEHOLDER_EMPTY]]; 
          [songInfo setObject:imageArt forKey:MPMediaItemPropertyArtwork]; 


          [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo]; 

         }}]; 

       } 

      } failureHandler:^(NSError *error) { 

      }]; 

Wenn ich neuen Rahmen SDWebImage aktualisiert i folgende Fehler zu empfangen beginnen:

Incompatible block pointer types sending 'void (^)(NSInteger, NSInteger)' to parameter of type 'SDWebImageDownloaderProgressBlock _Nullable' (aka 'void (^)(NSInteger, NSInteger, NSURL * _Nullable __strong)') 

Nachdem ich Lösung gefunden aber ich weiß nicht, wo ich diese Linie setzen muss.

typedef void(^SDWebImageCompletedWithFinishedBlock)(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished); 

Bitte nur helfen, wo Ich muss diese Linie setzen und nicht mehr.

Antwort

0

Hier ist der neue Code von SDWebImageView. Ich habe unten Code verwendet und es funktioniert für mich.

[[SDWebImageManager sharedManager]downloadImageWithURL:[NSURL URLWithString:ImageUrl] options:SDWebImageRefreshCached progress:^(NSInteger receivedSize, NSInteger expectedSize) 
    { 

    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) 
    { 



     if (finished==true) 
     { 
      if (error==nil) 
      { 
       //Here is the downloaded image 
       UIImage *DownloadedImage=image; 
      } 
      else 
      { 
       NSLog(@"%@",error.localizedDescription); 
      } 
     } 

    }]; 
+0

Kein sichtbares @interface für 'SDWebImageManager' deklariert den Selektor 'downloadImageWithURL: Optionen: progress: completed:' Ich habe bereits den SDWebImageManager importiert –