从Web服务加载多个图像的速度更快

时间:2013-02-13 04:22:55

标签: ios nsurlrequest nsurlcache

我想从JSON webservice加载多个图像到我的应用程序。这些图像用作我应用中“商店”的缩略图。因此,当用户单击按钮转到“商店”时,正在发出请求。每次用户单击按钮时,都会重复此请求。

现在这里没有问题,但是当JSON中的数据数量增加时会出现问题。以前,我们只加载5张图片。现在,我们正在加载至少18张图片。当图像乘以100或更多时,这些可能会造成真正的问题。

我正在考虑使用NSURLCache来缓存图片,但我怎么知道图片是否有更新?是说添加了新图像,还是不再使用当前图像?任何人都可以告诉我什么是最好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用来自https://github.com/rs/SDWebImage的SDWebImage从Webservices加载多个图像 在像bellow

这样的指令中阅读如何使用
  • 您需要先右键单击您的项目名称: - >将文件添加到您的项目 - >选择了SDWebImageproject并添加它们

注意: - 请不要选中复制选项

  • 现在点击你的xcode中的项目名称来构建阶段: - > target dependencies: - >点击+按钮添加SDWebimage ARC

  • 现在选择链接二进制文件库点击+按钮添加libSDWebimageARC.a然后再次点击+并添加imageIO.framework并添加libxml2.dylib就可以了

  • 转到Build设置: - >其他链接标记: - >添加-ObjC

  • 和标题搜索路径添加这三项

    1 / usr / include / libxml2

    2“$(OBJROOT)/ UninstalledProducts / include”

    3“$(TARGET_BUILD_DIR)/ usr / local / lib / include”

你可以像这样诋毁代码: - #import <SDWebImage/UIImageView+WebCache.h>

imageView = [[UIImageView alloc] init];


            UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
            activityIndicator.hidesWhenStopped = YES;
            activityIndicator.hidden = NO;
            [activityIndicator startAnimating];


            [imageView setImageWithURL:[NSURL URLWithString:strUrlSting]
                      placeholderImage:nil options:SDWebImageProgressiveDownload
                               success:^(UIImage *image) { [activityIndicator stopAnimating];[activityIndicator removeFromSuperview]; }
                               failure:^(NSError *error) {  [activityIndicator stopAnimating];[activityIndicator removeFromSuperview]; }];

            [imageView addSubview:activityIndicator];


            imageView.contentMode = UIViewContentModeScaleAspectFit;
            imageView.clipsToBounds = YES;
            imageView.tag = 1;
            imageView.backgroundColor = [UIColor blackColor];

现在建立并运行它的工作就像平稳的欢呼......:)