1

我无法形成问题标题,因为这个问题就像描述性的。但我可以在这里解释清楚。这与ios中的图像缓存有关。

我的要求:我想创建一个列表,其中包含图像视图和从在线加载的图像。我还需要为该图像实现缓存(因为每次如果我在线加载 fom 都会花费太多时间并且还消耗网络)。

注意:通常我们会根据该图像链接为该图像准备缓存键。

有没有其他方法来准备缓存键?

加载列表视图后,我可以单击任何行,我将重定向到详细信息页面。在那个详细的页面中,我有编辑选项,我可以更改该图像。我重新提交到服务器。完成上传后,我会强制关闭我的应用程序并作为新应用程序打开。在这种情况下,在服务器端,图像链接没有变化,因为该图像链接如h​​ttp://www.uigarden.net/english/images/108.jpg

现在我加载那个tableview而不是所有图像从缓存或服务器加载。所以我们有两种情况。

1)从缓存:如果链接没有变化并且该链接ID在缓存文件夹中可用,那么它将从缓存中加载。这里 Mu 问题:我无法找到它是否已编辑或未编辑。所以我无法加载新编辑的图像,因为我已经基于链接缓存了该图像。

2) 如果基于链接的键在缓存中不可用,则从直接链接。

我们如何区分它是编辑图像还是旧图像?

请帮我

4

2 回答 2

1

解决方案是 - SDWebImage

您只需要到#import <SDWebImage/UIImageView+WebCache.h>您的项目,您还可以在下载图像时使用以下代码定义占位符:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
        static NSString *CellIdentifier;
        CustomCell *cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

        MyObject *object = (MyObject *)[self.list.array objectAtIndex:indexPath.row];

        [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
                       placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

        return cell;
}

它还缓存下载的图像并为您提供出色的性能。

于 2014-06-09T10:55:03.203 回答
1

AFNetWorking 与 NSURLCache 的组合很棒

于 2013-04-18T07:51:25.907 回答