我正在嘗試使用緩存異步下載圖像,並在Objective-C的tableviewcell中顯示。圖片來自網址。我使用NSSession編寫了API調用,並使用GCD進行後臺調用,但在這種情況下,圖像在滾動時再次下載。我只想下載一次圖像。如何使用緩存異步下載圖像並在Objective-C的tableviewcell中顯示?
//------------ using GCD ---------
if(![imageUrlString isKindOfClass:[NSNull class]]){
dispatch_async(dispatch_get_global_queue(0,0), ^{
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrlString]];
if (data == nil)
return;
dispatch_async(dispatch_get_main_queue(), ^{
// WARNING: is the cell still using the same data by this point??
cell.imageView.image = [UIImage imageWithData: data];
});
});
}
//------------ using GCD -----
對於同樣的兌現是唯一的方式?如果是,請建議我如何實現這一目標。
爲什麼不使用SDWebImage? (https://github.com/rs/SDWebImage) – foolishBoy