如何为每个uitableviewcell缓存从互联网下载的图像和标签文本?

时间:2012-07-25 08:56:06

标签: iphone objective-c caching uitableview nscache

我从互联网下载每个表格单元格的文本和图像。我是在后台(GCD)做的,但性能不好(所有行的dll图像需要一段时间)因为有很多行。

我使用nsurlconnection作为图像dll。

我google了一下,感到困惑。最简单的方法是什么? 使用NSCache(用于图像和文本)还是我必须学习核心数据?

5 个答案:

答案 0 :(得分:2)

您可以使用AsyncImageView下载&缓存图片。

答案 1 :(得分:1)

我正在使用块和ASIHTTPRequest,它可以正常工作。

[ASIHTTPRequest setDefaultCache:[ASIDownloadCache sharedCache]];

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL urlWithString:<yoururl>]];
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy];
[request setCacheStoragePolicy:ASICacheForSessionDurationCacheStoragePolicy];


[request setCompletionBlock:^{
    //do your things
}];

[request setFailedBlock:^{
     //request failed - inform the user
}];

[request startAsynchronous];

答案 2 :(得分:1)

我使用此库来缓存Web图像 https://github.com/rs/SDWebImage 使用起来非常简单

[imageView setImageWithURL:[NSURL URLWithString:yoururl]];

答案 3 :(得分:1)

结帐https://github.com/rs/SDWebImage/,这是一种超级简单的方法......

来自自述文件:

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

这就是缓存图像所需的全部内容。您可以查看源代码,了解如何扩展它以支持缓存文本对象。或者,您可以使用NSUserDefaults根据网址和文本数据存储键值对。

答案 4 :(得分:0)

您可以使用此链接,并且可以了解要做什么 http://iphoneappcode.blogspot.in/2012/07/lazy-loading-in-iphone.html