1

私のcellForRowAtIndexPathメソッドでは、UIImageView + AFNetworkingカテゴリを介して画像を非同期にダウンロードするコードをいくつか持っていますが、テーブルをセルにスクロールするたびにcellForRowAtIndexPathメソッドが呼び出され、画像のダウンロードが開始されるたびに. 画像やセルなどをキャッシュできますか?

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    //some code here
    [imageView setImageWithURL: myURL placeholderImage:[UIImage imageNamed:@"placeholder"]];
    //some other code here
    return cell;
}
4

1 に答える 1

4

UIImageView+AFNetworkingAFImageCache(サブクラス)を使用して画像を自動的にキャッシュするNSCacheため、2 回ダウンロードする必要はありません。

セルがスクロールしてビューに戻ると、URL が同じである限り、ネットワーク呼び出しを行う代わりに、キャッシュされた画像が使用されます。

このカテゴリを定期的に使用する場合は、このカテゴリの実装ソースに目を通しておくと便利です。ソースコードはここにあります。

于 2013-06-19T16:05:20.283 に答える