私はキャッシュを使用して非同期に画像をダウンロードしようとしていますが、objective-Cのtableviewcellに表示しています。画像はURLから来ています。 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 -----
同じ換金方法はありますか?はい、もし私がこれを達成する方法を提案してください。
を試してみてください? (https://github.com/rs/SDWebImage) – foolishBoy