2015-11-13 2 views
-2

я не могу выяснить, как объявить следующий метод в стрижа:Как объявить этот метод быстрым с блоком завершения?

- (void)downloadImageWithURL:(NSURL *)url completionBlock:(void (^)(BOOL succeeded, UIImage *image))completionBlock { 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[NSURLConnection sendAsynchronousRequest:request 
            queue:[NSOperationQueue mainQueue] 
         completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
          if (!error) 
          { 
           UIImage *image = [[UIImage alloc] initWithData:data]; 
           completionBlock(YES,image); 
          } else{ 
           completionBlock(NO,nil); 
          } 
         }]; 
} 

Я нашел этот метод из natashatherobot блога: http://natashatherobot.com/ios-how-to-download-images-asynchronously-make-uitableview-scroll-fast/

Я хотел бы назвать тот же метод в быстрой и когда асинхронный запрос получает изображение, передающее его в блок завершения.

Что вы предложите?

+1

, так что вы спрашиваете, как определить блок в быстром? – luk2302

+3

Возможный дубликат [Как использовать NSURLConnection completeHandler с быстрым] (http://stackoverflow.com/questions/24016714/how-to-use-nsurlconnection-completionhandler-with-swift) – NSNoob

ответ

0
func downloadImageWithURL(url: NSURL, completionBlock: (succeeded: Bool, image: UIImage?) ->()) { 
    let request = NSMutableURLRequest(URL: url) 
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response, data, error) in 
     if error == nil { 
      let image = UIImage(data: data!) 
      completionBlock(succeeded: true, image: image!) 
     } else { 
      completionBlock(succeeded: false, image: nil) 
     } 
    } 
} 
+0

Спасибо, чувак, вы рок! ;) – Sam

Смежные вопросы