0

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

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

我正在考虑使用NSURLCache缓存图像,但我怎么知道图像是否有更新?假设添加了新图像,或者不再使用当前图像?谁能给我任何关于解决此问题的最佳方法的想法?

4

1 回答 1

1

您可以使用来自https://github.com/rs/SDWebImage的 SDWebImage 从 Web 服务加载多个图像 阅读如何在下面的指令中使用它

  • 您需要首先右键单击您的项目名称:-> 将文件添加到您的项目-> 选择 SDWebImageproject 并添加它们

注意:- 请不要检查复制选项

  • 现在单击您的 xcode 中的项目名称,以构建阶段:-> 目标依赖项:-> 单击 + 按钮并添加 SDWebimage ARC

  • 现在选择链接二进制库单击 + 按钮添加 libSDWebimageARC.a 并再次单击 + 并添加 imageIO.framework 并添加 libxml2.dylib 就是这样

  • 去构建设置:->其他链接标志:->添加-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];

现在构建和运行它的工作就像顺利欢呼.... :)

于 2013-02-13T05:00:55.080 回答