将图像加载到存储在xml文件中的缓存

时间:2012-06-20 03:49:48

标签: iphone objective-c ios

我有应用程序,我通过给url将xml文件加载到缓存中我有以下代码:

        NSHTTPURLResponse *response = nil;
    responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    cachedResponse = [[NSCachedURLResponse alloc] initWithResponse:response data:responseData userInfo:nil storagePolicy:NSURLCacheStorageAllowed];
    [[NSURLCache sharedURLCache] storeCachedResponse:cachedResponse forRequest:request];

在此之后,我正在解析从web获取的xml文件。在xml文件中有图像和视频的URL,当我从网址加载该图像时,它只需要很长时间。我可以使用缓存在解析时加载这些图像吗?或者还有其他方法可以避免在显示时加载图像吗?

2 个答案:

答案 0 :(得分:0)

你可以通过两种方式实现它:

  1. 在制作用户界面(想要显示图像的位置)之前将图像和视频加载到前景中,我认为这是一个最糟糕的主意,因为它会在加载图像和视频内容时卡住你的UI。 / p>

  2. 在后台线程中加载图像和视频,并在加载时在屏幕上显示黑色分层微调器。下载完成后,请不要忘记删除微调器。

答案 1 :(得分:0)

有一些库可以帮助你做这类事情。一个受欢迎的是SDWebImage。它内置了缓存,并以异步方式下载图像。

以下是运行中的SDWebImage示例:

[imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]
                        success:^(UIImage *image) {... success code here ...}
                        failure:^(NSError *error) {... failure code here ...}];
];