我正在使用 NSURLConnection sendSynchronousRequest 方法下载图像,并且效果很好。但是,有时我会遇到图像 URL 指向图像文件以外的其他内容的问题。例如,我发现这个非图像 URL 引起了问题: http://www.100plusposters.com/images/ExoticFlowers.jpg 该 URL 返回一个网页,我认为这是因为站点中缺少图像。
Objective-C 的一个好处是无效图像不会导致崩溃。它简单而安静地继续前进,只是不显示任何图像,但这仍然是一个问题。
如何在显示之前验证返回的数据以确保它是有效的图像文件?
谢谢!
我的相关代码,以防万一……
NSError *error = nil;
NSURLResponse *response;
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:5];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if(data != nil && [error localizedDescription] == nil)
{
//Create UIImage object using initWithData method
//Display UIImage
}