0

我有一个应用程序,我通过提供 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 加载该图像时,有图像和视频的 url,它只需要很长时间。我可以在解析时使用缓存加载这些图像吗?或者有没有其他方法可以避免在显示时加载图像?

4

2 回答 2

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 ...}];
];
于 2012-06-20T04:51:16.210 回答
0

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

  1. 在制作 UI(您想要显示图像的位置)之前在前台加载图像和视频,我认为这是一个最糟糕的主意,因为它会在加载图像和视频内容时卡住您的 UI。

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

于 2012-06-20T04:32:24.737 回答