我有应用程序,我通过给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,当我从网址加载该图像时,它只需要很长时间。我可以使用缓存在解析时加载这些图像吗?或者还有其他方法可以避免在显示时加载图像吗?
答案 0 :(得分:0)
你可以通过两种方式实现它:
在制作用户界面(想要显示图像的位置)之前将图像和视频加载到前景中,我认为这是一个最糟糕的主意,因为它会在加载图像和视频内容时卡住你的UI。 / p>
在后台线程中加载图像和视频,并在加载时在屏幕上显示黑色分层微调器。下载完成后,请不要忘记删除微调器。
答案 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 ...}];
];