Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 更快地从Web服务加载多个图像_Ios_Nsurlrequest_Nsurlcache - Fatal编程技术网

Ios 更快地从Web服务加载多个图像

Ios 更快地从Web服务加载多个图像,ios,nsurlrequest,nsurlcache,Ios,Nsurlrequest,Nsurlcache,我想将多个图像从JSON Web服务加载到我的应用程序。这些图像可以作为我应用程序中“商店”的缩略图。因此,当用户点击一个按钮进入“商店”时,就会发出一个请求。每次用户单击按钮时,都会重复此请求 现在这里没有问题了,但是当JSON中的数据数量成倍增加时,问题就出现了。以前,我们只加载5幅图像。现在,我们正在加载至少18幅图像。当图像乘以100或更多时,这些可能会造成真正的问题 我正在考虑使用NSURLCache来缓存图像,但如何知道图像是否有更新?假设添加了新图像,或者当前图像不再使用?有人能告

我想将多个图像从JSON Web服务加载到我的应用程序。这些图像可以作为我应用程序中“商店”的缩略图。因此,当用户点击一个按钮进入“商店”时,就会发出一个请求。每次用户单击按钮时,都会重复此请求

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


我正在考虑使用
NSURLCache
来缓存图像,但如何知道图像是否有更新?假设添加了新图像,或者当前图像不再使用?有人能告诉我什么是最好的方法吗?

您可以使用SDWebImage从Web服务加载多个图像 在下面的指令中阅读如何使用它

  • 您需要首先右键单击项目名称:->将文件添加到项目->选定的SDWebImageproject并添加它们
注意:-请不要选中“复制”选项

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

  • 现在选择linkbinary with library click+按钮addlibsdwebimagearc.a,然后再次单击+并添加imageIO.framework和libxml2.dylib

  • 将要生成设置:->其他链接标志:->添加-ObjC

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

    1/usr/include/libxml2

    2“$(OBJROOT)/卸载的产品/包括”

    3“$(目标构建目录)/usr/local/lib/include”

您可以实现如下代码:-
#导入


现在,构建并运行其工作状态,就像干杯一样……)

谢谢你!我会先研究一下,看看它是否对我有帮助。好吧,这很简单,你可以通过阅读如何使用at并按照上面所说的步骤来实现
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];