我正在使用 NSURLConnection sendSynchronousRequest 方法下载图像,效果很好。但是,有时我会遇到图像 URL 指向图像文件以外的其他内容的问题。例如,我发现这个非图像 URL 导致了问题:http://www.100plusposters.com/images/ExoticFlowers.jpg该 URL 返回一个网页,我认为发生这种情况是因为站点中缺少图像。
Objective-C 的一大优点是无效图像不会导致崩溃。它简单而安静地继续运行,只是不显示任何图像,但这仍然是一个问题。
在显示之前如何验证返回的数据以确保它是有效的图像文件?
Thanks!
我的相关代码,如果有帮助的话......
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
}
看起来 NSURLResponse 对象包含一个MIME 类型属性。这应该可以让您很好地了解返回数据的类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)