UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];
我使用上面的代码,然后检查
if (image)
return image;
else
{
NSLog(@"no image on URL");
return nil;
}
但有时(非常非常罕见)我无法从有效的网址获取图像。该网址 100% 有效。
通常加载一张图片需要近一秒的时间,但是当无法加载图片时,该过程需要更多的时间(20-200秒)。 然后我得到“URL 上没有图像”。
有没有更好的方法从 URL 获取图片? 我宁愿在一秒钟内得到“URL 上没有图像”,也不愿等待这么久。
附言抱歉我的英语很差
最佳答案
您很少需要使用dataWithContentsOfURL:
。这是一个阻塞调用,因此需要一个后台线程。它也不够灵活,并且不能提供良好的错误返回(这是您遇到的问题)。
请参阅URL Loading System Programming Guide 。通常,您需要为此类工作配置异步 NSURLConnection
。如果您正在进行大量网络操作,您可能需要考虑像MKNetworkKit这样的框架。或AFNetworking它可以为您处理很多复杂的问题。
关于ios - 不从有效 URL 加载图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527920/